为什么pcap_setfilter没有生效
why pcap_setfilter did not take effect
我正在使用 libpcap 作为 lib 来编写一个 C 程序来捕获即将到来的 IP。
我的代码片段如下:
struct bpf_program filter;
pcap_compile(pcap_handle, &filter, "icmp[icmptype]=0 and '(dst 16.11.26.100 or dst 16.11.27.100)'", 1, 0);
pcap_setfilter(pcap_handle, &filter);
但是没有用,我仍然可以看到其他目标Ips,而不仅仅是上面两个Ips。
我解决了这个问题,正确答案在这里:
"icmp[icmptype]=0 and (dst 16.11.26.100 or dst 16.11.27.100)"
刚刚删除了单个配额。
您应该始终检查库例程调用中的错误。如果您检查了来自 pcap_compile()
的错误,您会看到编译失败(由于单引号,尽管错误消息可能只是 "syntax error")。
我正在使用 libpcap 作为 lib 来编写一个 C 程序来捕获即将到来的 IP。 我的代码片段如下:
struct bpf_program filter;
pcap_compile(pcap_handle, &filter, "icmp[icmptype]=0 and '(dst 16.11.26.100 or dst 16.11.27.100)'", 1, 0);
pcap_setfilter(pcap_handle, &filter);
但是没有用,我仍然可以看到其他目标Ips,而不仅仅是上面两个Ips。
我解决了这个问题,正确答案在这里:
"icmp[icmptype]=0 and (dst 16.11.26.100 or dst 16.11.27.100)"
刚刚删除了单个配额。
您应该始终检查库例程调用中的错误。如果您检查了来自 pcap_compile()
的错误,您会看到编译失败(由于单引号,尽管错误消息可能只是 "syntax error")。