Python的数据包嗅探/数据包捕获 - pcapy不捕获数据包

问题描述:

我有我的无线接口监控模式,我能成功地嗅探网络数据包,并使用Wireshark分析它们。我一直在尝试实施类似pcapyimpacket。它看起来好像pcapy没有捕获Wireshark所在的相同数据包。我目前正在Mac OS X 10.9上运行2012 Macbook Pro,但注意到与TP-LINK TL-WN722N无线USB适配器在Ubuntu上的行为相同。Python的数据包嗅探/数据包捕获 - pcapy不捕获数据包

下面是我写的一个脚本示例,显然不起作用。即使我在Wireshark中看到他们,我也不会收到pcapy的探测请求。

import pcapy 
import impacket 

DECODER = impacket.ImpactDecoder.RadioTapDecoder() 


def packet_handler(header, data): 
    radio_packet = DECODER.decode(data) 
    dot11 = radio_packet.child() 
    if dot11.get_subtype() == impacket.dot11.Dot11Types.DOT11_SUBTYPE_MANAGEMENT_PROBE_REQUEST: 
     management_base = dot11.child() 
     if management_base.__class__ == impacket.dot11.Dot11ManagementFrame: 
      print management_base.get_source_address(), management_base.get_destination_address() 


p = pcapy.open_live("your_interface_here", 2000, 0, 1000) 
p.loop(-1, packet_handler) 

在本例中,en1处于监视模式。

p = open_offline('path_to_file') 

我这不是正确设置pcapy:此利用Wireshark的生成的PCAP文件,只需改变open_liveopen_offline工作正常?

+0

我会考虑,如果你的使用Python 2.7 – TheCreator232

+0

我正在考虑使用Scapy的替代Scapy的的pcapy,虽然它解决了监控模式的问题,我不能够捕捉到尽可能多的数据包的某些原因。不确定你对此有任何想法? –

+0

以及我已经使用scapy相当多,从来没有在Mac OS上。你能记下你使用捕获的嗅探命令吗?你是什​​么意思,它不捕获尽可能多的数据包? – TheCreator232

如果你捕捉到一些数据包,但不是全部,你在Wireshark的看到数据包,尝试启用混杂模式(应该可以捕捉到一切,甚至用错误校验包):

1)设置混合模式为pcapy

promiscuous = True 
p = pcapy.open_live("your_interface_here", 2000, promiscuous, 1000) 

2)为您的界面设置混杂模式。不知道如何在Mac上执行它,在Linux上它是:

os.system('sudo ifconfig eth0 promisc') 

然后关闭并关闭您的界面。

与pcapy和铜缆以太网有同样的问题。上面的技巧为我解决了这个问题。