scapy 中嗅探功能的过滤选项

Filter options for sniff function in scapy

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

我想知道可以使用 sniff() 函数中的过滤器选项的方式。我尝试在文档中使用格式,但大多数时候它会导致这样的问题。 the filter of sniff function in scapy does not work properly.

我用的是

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

提前致谢!

sniff() 使用 Berkeley Packet Filter (BPF) syntax(与 tcpdump 相同),这里有一些例子:

来自或发往主机的数据包:

host x.x.x.x

仅 TCP SYN 段:

tcp[tcpflags] & tcp-syn != 0

除了回显之外的所有 ICMP requests/replies:

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