[libpcap][func] pcap_compile

int pcap_compile(pcap_t *p, struct bpf_program *fp, const char
                             *str,
int optimize, bpf_u_int32 netmask)


pcap_compile은 문자열로 이루어진 필터 표현식을 프로그램으로 컴파일하기 위한 함수이다.
자세한 표현식은 pcap_filter문서를 참고하도록 하자.

 

Description[document]

pcap_t *p: paket을 다루기위한 handler
struct bpf_program *fp: 표현식을 프로그램으로 만들어 포인터로 반환함 (기회가 되면 정리)
char *str: 표현식 포인터
int optimize: 코드 최적화 여부를 선택
bpf_u_int32: 네트워크 넷마스크


Return

컴파일에 성공하면 0을 반환하고 실패하면 -1을 반환한다.
또한 에러 내용은 pcap_geterr() or pcap_perror()로 볼 수 있다. 


부록

  • bpf_program에서 bpf는 Berkeley Packet Filter의 약자로 데이터 링크에 raw 인터페이스 패킷을 제어 할 수 있다.
  • optimize는 gcc에서의 -O옵션과 유사한 의미라고 한다.
    실제 사용함에 있어서 큰 차이는 없겠지만 코딩한 대로 이루어져야하는 네트워크 특성상 0으로 설정하고 사용하는 경우가 잦다.

글의 문제가 있다면 댓글을 달아 주세요.

This site uses Akismet to reduce spam. Learn how your comment data is processed.