首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python包嗅探/包捕获- pcapy不捕获包

Python包嗅探/包捕获- pcapy不捕获包
EN

Stack Overflow用户
提问于 2014-03-30 05:34:41
回答 1查看 4K关注 0票数 4

我的无线接口处于监控模式,我能够成功地嗅探网络数据包并使用Wireshark分析它们。我一直在尝试用pcapyimpacket实现类似的东西。看起来pcapy似乎没有捕获与Wireshark相同的数据包。我目前在MacOSX10.9和2012 Macbook Pro上运行,但注意到Ubuntu上的TP-LINK TL-WN722N无线usb适配器也有相同的行为。

这是我写的一个脚本的例子,它显然不能工作。我在pcapy上没有收到探测请求,即使我在Wireshark中看到了它们。

代码语言:javascript
复制
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处于监控模式。使用从Wireshark生成的pcap文件可以很好地工作,只需将open_live更改为open_offline

代码语言:javascript
复制
p = open_offline('path_to_file')

我没有正确设置pcapy吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-01 00:30:19

如果您捕获了Wireshark中看到的某些数据包,但不是所有数据包,请尝试启用混杂模式(应捕获所有数据包,即使是校验和错误的数据包):

1)为pcapy设置混杂模式

代码语言:javascript
复制
promiscuous = True
p = pcapy.open_live("your_interface_here", 2000, promiscuous, 1000)

2)为您的接口设置混杂模式。不知道在Mac上怎么做,在Linux上是:

代码语言:javascript
复制
os.system('sudo ifconfig eth0 promisc')

然后关闭并关闭您的接口。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22737192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档