为什么pcap_setfilter没有生效

时间:2019-05-15 13:34:52

标签: pcap libpcap

我正在使用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);

但是它没有用,我仍然可以看到其他dest Ips,而不仅仅是上面的两个Ips。

2 个答案:

答案 0 :(得分:1)

您应该始终检查库例程调用中的错误。如果检查了pcap_compile()中的错误,就会发现编译失败(由于单引号,尽管错误消息可能只是“语法错误”)。

答案 1 :(得分:0)

我已解决问题,正确的答案在这里:

"icmp[icmptype]=0 and (dst 16.11.26.100 or dst 16.11.27.100)"

只需删除单个配额即可。