在scapy中过滤sniff函数的选项

我正在开发一个基于scapy的工具,在这里我需要根据协议和目标的ip地址来嗅探数据包

我想知道如何使用sniff()函数中的filter选项。 我尝试在文档中使用格式,但大多数情况下它会导致这样的问题。 scapy中的sniff函数的filter不能正常工作 。

我使用的是

a=sniff(filter="host 172.16.18.69 and tcp port 80",prn = comp_pkt,count = 1) 

提前致谢!

sniff()使用Berkeley Packet Filter(BPF) 语法 (与tcpdump相同),下面是一些示例:

来自或主办的数据包:

 host xxxx 

只有TCP SYN段:

 tcp[tcpflags] & tcp-syn != 0 

一切ICMP,但呼应请求/答复:

 icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply