본문 바로가기

2009/122

libpcap : 패킷 캡쳐 라이브러리 / libnet : 패킷 생성 라이브러리 패킷 캡쳐 라이브러리 , libpcap은 운영체제에 의해서 패킷캡쳐기능 의 접근을 구현-독립적인 패킷캡쳐 기능을 제공한다. 현재 이것은 패킷을 읽는 것만을 제공한다. (비록 몇줄의 코드를 라이브러리에 추가하는 것으로 데이터 링크 패킷에도 마찬가지로 쓰게 되지만). -- 이 라이브러리는 tcpdump를 사용하였다. 약 25의 함수(????)가 라이브러리를 구성하는데 이는 단지 함수를 기술한 것이 아니다 다음절에서 일반 함수의 실제적인 사용에 관한 완전한 예를 보일 것이다. 모든 라이브러리 함수는 접두어 pcap_를 붙인다. pcap 메뉴얼 페이지가 이 함수들에 대하여 더 자세히 기술하고 있다. (ftp://ftp.ee.IbI.gov/libpcap.tar.z) 첨부 자료는 패킷 캡쳐를 위해 이리저리 모은건대.. 2009. 12. 3.
Linux: SOCK_PARCKET 리눅스 환경에서 데이터링크계층으로부터 패킷을 받을려면 SOCK_PACKET이라는 종류의 소켓을 만들어야 한다. 이를 위해서 우선 관리자의 권한을 가져야 하고, socket의 세번째 인수가 이더넷 프레임 종류를 나타내는 0이 아닌 값이어야 한다. 예를 들면 데이터링크로부터 패킷을 받기 위해서 다음과 같이 써야 한다. fd = socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL)); 이는 데이터링크가 받는 모든 프로토콜의 프레임을 반환할 것이다. 만일 IPv4 프레임만을 원한다면, 호출은 다음과 같다. fd = socket(AF_INET, SOCK_PACKET, htons(ETH_P_IP)); 마지막 인수로서의 다른 상수는 ETH_P_ARP나 ETH_P_IPV6 등이 있다. ET.. 2009. 12. 3.