Engineering 301

Active X 대체기술

방통위에서 2014년까지 ActiveX 를 대체하는 기술을 보급하고 타 브라우저에서도 동작하도록 하는 인터넷 환경 개선 추진 계획을 발표했다고 하네요.(오늘자 뉴스 - 2011년 3월 31일) 관련기사 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=20110331100902 http://www.kbench.com/news/?&pr=0&no=98714 KISA 웹사이트에서도 이용환경 개선을 위해 페이지를 개설했군요. 기술문서(guide.pdf)도 같이 올려져 있어서, 개발시에 참고가 될듯합니다. http://web.kisa.or.kr/index.jsp 출처 - 방송통신위원회․ 한국인터넷진흥원 Active X 대체 기술 가이드라인』 그런데, 뉴스 기사에 있는..

Engineering/Etc 2011.03.31

자바스크립트용 ipcalc

네트워크 ip 주소를 계산하기 위해서 리눅스에서 사용되는 ipcalc 는 자바스크립트로도 많이 나와있습니다. 제가 참조한 자바스크립트의 원래 사이트는 http://www.hesketh.com/schampeo/projects/ipcalc/ 입니다만, 필요한 부분만 발췌해서 파일로 첨부했습니다. test.html 을 열어보면, "IP/mask" 부분에 알아내려고 하는 네트워크의 IP 와 bit mask 값을 입력하고, "Calculate" 버튼을 클릭하면 "Network" 부분에 해당하는 네트워크 값이 나타납니다. 원 소스의 ipcalc.js 는 form sumit 입력값(f.ip.value) 를 가지고 show_info() 에서 inner html 로 출력하는 형태였는데, 네트워크 값만을 알아내기 위해서 ..

ctags 사용법(하위디렉토리 검색)

vim 으로 소스에 선언된 함수나 변수를 확인하기 위해 ctags 를 많이 사용합니다. 보통 하위 디렉토리까지 확인하기 위해 "-R" 옵션을 줍니다. 그런데, 하위 디렉토리에서 참조한 함수에서 다시 그 디렉토리에 존재하는 함수를 다시 찾을때(ctrl+']') 찾지 못하는 경우가 있습니다. 예를 들어, 현재 디렉토리에 a.c 가 존재하고, a.c 에 func_a() 를 호출합니다. func_a() 는 b 디렉토리의 c.c 에 존재합니다. b 디렉토리의 c.c 에서는 func_b() 를 호출합니다. # lsa.c b/ # more a.cmain(){ func_a();} # ls bb.c c.c # more b/b.cfunc_b(){ int b;} # more b/c.cfunc_a(){ func_b();} #..

Engineering/Etc 2011.03.14

goo.gl short URL API 사용

구글 사이트를 참조합니다. http://code.google.com/apis/urlshortener/v1/reference.html#method_urlshortener_url_insert 2011년 3월 기준 위 링크의 API 를 참조했습니다. function googl_short_url($long_url) { // global $googl_login, $googl_api_key; $googl_api_key = "API키값"; $googl_url = "https://www.googleapis.com/urlshortener/v1/url"; $post_url = $googl_url . "?key=" . $googl_api_key; $post_data = "{\"longUrl\": \"".$long_url."..

Engineering/PHP 2011.03.11

bridge 인터페이스의 slave 인터페이스 확인

bridge 인터페이스의 slave 인터페이스들을 확인하기 위해 ioctl() 함수를 찾아보았으나, BSD 계열에서는 SIOCBRDGIFS 가 보였는데 redhat(centos) 쪽에서 쉽게 예제가 안보였다. 물론 "brctl show br명"으로 가능하기는 하나, 화면 출력값이 여러 라인으로 출력된다. brctl 소스를 확인해보면 인터페이스 리스트를 확인하는 api 가 존재할거 같으나 찾기가 쉽지 않았다. 그래서, 다른 방법을 사용했는데, /sys/class/net/brXXX 디렉토리를 확인해보자. /sys/class/net/brXXX/brif 에 slave 인터페이스의 링크 디렉토리가 존재한다. # ls /sys/class/net/br0/brif eth2 eth3 사실 brctl 라이브러리 소스를 직..

Engineering/Network 2011.03.04

STP(spanning tree protocol) 정의

STP는 동일한 두개의 컴퓨터 네트웍 세그먼트를 서로 연결하기 위해 두개의 브리지가 사용된 곳에서 브리지 간에 정보를 교환할 수 있도록 함으로써, 주어진 메시지를 둘 중 오직 한 개의 브리지만이 처리할 수 있도록 해주는 프로토콜이다. STP는 흔히 '브리지 루프'라고 알려져 있는 상황을 예방한다. 이더넷이나 토큰링과 같은 근거리 통신망에서, 컴퓨터는 공유하고 있는 전송로를 서로 먼저 사용하기 위해 경쟁한다. 만약 너무 많은 수의 컴퓨터가 동시에 데이터를 전송하려 시도하면, 네트웍의 전반적인 효율이 악영향을 받을 수 있으며 심지어 트래픽 전달이 거의 멈추는 지경에 까지 이를 수 있다. 이러한 개연성을 최대한 줄이기 위해, 브리지라고 불리는 장치를 이용하여 근거리 통신망을 두개 이상의 네트웍 세그먼트로 나누..

Engineering/Network 2011.02.25

PHP XML 지원 (--disable-dom 를 나올때)

php 에서 XML 관련 함수를 써야할때, php 에서 지원이 안되는 경우는 phpinfo() 에서 --disable-dom 이 나오는지를 먼저 확인한다. 보통 php 를 rpm 으로 설치한 경우 --disable-dom 이 나오는데, 이럴때 http://rpm.pbone.net/ 에서 설치된 php-common-XXX 버전과 동일한 버전의 php-xml-XXX 를 찾아서 설치를 해보자. # rpm -ivh php-xml-5.2.5-7-fc9.i386 그리고, php.ini 를 수정없이 apache 를 재시작해서 phpinfo() 를 확인해보면, --enable-dom 으로 나오는 것을 확인할 수 있다.

Engineering/PHP 2011.02.21

네트워크에서 IP 충돌이 날때 확인 방법

- linux 에서는 "arping" 을 사용하여, 결과로 나오는 해당 아이피의 mac 주소를 확인한다. # arping 192.168.100.39 arping 192.168.100.39 ARPING 192.168.100.39 from 192.168.100.217 eth0 Unicast reply from 192.168.100.39 [00:19:21:4C:5B:XX] 0.702ms Unicast reply from 192.168.100.39 [00:19:21:4C:5B:XX] 0.810ms 192.168.100.39 를 사용하는 호스트의 mac 주소가 "00:19:21:4c:5b:xx" 가 아니라면 다른 사용자가 사용한다고 볼 수 있다. - windows 에서는 "nbtstat" 명령어를 사용한다. # ..

Engineering/Network 2011.02.01