我使用scapy函数嗅探()进行数据包捕获。我只想捕获EAP数据包。我可以使用tcpdump与以下过滤器过滤EAP包:Scapy过滤与嗅探()函数
# tcpdump -i mon0 -p ether proto 0x888e tcpdump: WARNING: mon0: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on mon0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 65535 bytes 13:04:41.949446 80847234901us tsft 48.0 Mb/s 2437 MHz 11g -16dB signal antenna 1 [bit 14] EAP packet (0) v1, len 5 13:04:46.545776 80851831746us tsft 54.0 Mb/s 2437 MHz 11g -13dB signal antenna 1 [bit 14] EAP packet (0) v1, len 5
同时我有嗅探()函数相同的过滤器运行,但功能不捕捉任何EAP包:
sniff(filter="ether proto 0x888e",iface="mon0", count = 1)
为什么sniff()函数不捕获任何EAP数据包?
编辑:
对不起,我迟到的反应,我想你提出什么:
> conf.iface = 'mon0'
> pkts = sniff(filter="wlan proto 0x888e", count = 1)
tcpdump: WARNING: mon0: no IPv4 address assigned
> pkts
Sniffed: TCP:0 UDP:0 ICMP:0 Other:1
> EAP in pkts[0]
False
但这并不静像拍摄EAP包:(
由于这是一个老问题,我将其留作评论:可能你DID捕获了数据包。然而,你的测试是错误的,EAP是Python中的一个类,并不是一个数据包,因此它永远不会在'pkts'(这是一个对象列表,可能是类'Ether')。该语句应该是'pkts [0] .haslayer(EAP)',或者更可能是'pkts [0] .haslayer(EAPOL)' – KillianDS 2012-09-28 21:05:59