pcap_compile()
은 bpf_program
구조체의 형식으로 문자열을 필터 프로그램에 컴파일합니다. 이론적으로 나는 컴파일 된 형태의 프로그램을 저장하여 다른 네트워크 인터페이스 또는 다른 컴퓨터의 pcap_setfilter()
에 제공 할 수 있습니다.pcap_compile의 출력은 얼마나 portable합니까?
그게 가능할까요? bpf_program
양식이 다른 인터페이스를 통해 이식 가능합니까? 다른 프로세스? 다른 아키텍처? 아니면 그것을 사용하고 싶을 때마다 표현식을 컴파일하는 것이 가장 안전합니까?
pcap_open_dead()
의 존재를 기반으로 다소 휴대용이지만, 안전하고 무엇이 문서의 어느 곳에서도 쓰여지지 않는 것으로 보입니다.
감사합니다. 매우 도움이됩니다. 동일한 컴퓨터의 다른 인터페이스/장치는 어떨까요? – benzado
동일한 기계에있는 다른 인터페이스는 괜찮을 것이라고 생각합니다. 모든 구현에 대해 완전히 확신하지는 못합니다. 이더넷/루프백/ieee1394와 같은 인터페이스의 종류/종류에 대해서는 실제로 주저합니다. 내가 코드를 해킹하고 일이 내 머리 속에서 새어 나올 때부터 1 년이 넘었지만 의심 스럽습니다. – McPherrinM
동일한 링크 계층 헤더 유형 *을 사용하는 다른 인터페이스 *는 동일한 BPF 코드를 실행할 수 있습니다. * 다른 * 링크 계층 헤더 유형이 다른 인터페이스 (예 : 이더넷 대 802.11 대 PPP는 동일한 BPF 코드를 실행할 수 없습니다 (물론 같은 BPF 코드를 실행할 수는 있지만 코드는 다른 링크 계층 헤더 유형의 인터페이스에서 필터로 올바르게 작동하지 않습니다) BPF 코드가 컴파일 된 코드). –