scapy中嗅探功能的过滤器选项

Posted

技术标签:

【中文标题】scapy中嗅探功能的过滤器选项【英文标题】:Filter options for sniff function in scapy 【发布时间】:2016-09-24 00:15:51 【问题描述】:

我正在开发一个基于 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)

提前致谢!

【问题讨论】:

【参考方案1】:

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

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

host x.x.x.x

仅 TCP SYN 段:

tcp[tcpflags] & tcp-syn != 0

除了回显请求/回复之外的所有 ICMP:

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

【讨论】:

以上是关于scapy中嗅探功能的过滤器选项的主要内容,如果未能解决你的问题,请参考以下文章

python绝技 — 用Scapy测试无线网卡的嗅探功能

Python写的嗅探器——Pyside,Scapy

Scapy BPF 过滤器不工作

Scapy 数据包嗅探器触发对每个嗅探数据包的操作

python scapy中sniffer的用法以及过滤器

Python3 Scapy - 嗅探分段的 IP 数据包