Python中的数据包嗅探(Windows)

发布于 2021-01-29 18:43:23

使用Python嗅探网络数据包的最佳方法是什么?

我从几个地方听说,最好的模块是一个名为Scapy的模块,不幸的是,它使python.exe在我的系统上崩溃。我认为这只是我的安装方式的问题,除了许多其他人告诉我,它在Windows上不能很好地工作。(如果有人感兴趣,我正在运行WindowsVista,这可能会影响某些事情)。

有谁知道更好的解决方案?

UPD:

阅读了告诉我要安装PyPcap的答案后,我有点弄乱了,发现我尝试使用的Scapy告诉我也要安装PyPcap,只是它是使用的修改版。显然是因为修改后的PyPcap导致了问题,因为答案中的示例也导致了挂起。

我安装了原始版本的PyPcap(来自Google网站),Scapy开始正常运行(我没有尝试很多事情,但是至少当我开始嗅探时,它并没有崩溃)。我向Scapy开发人员发送了一张新的缺陷票:http
://trac.secdev.org/scapy/ticket/166 ,希望他们能对此做些事情。

无论如何,只是以为我会让大家知道。

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用pypcap

    import dpkt, pcap
    pc = pcap.pcap()     # construct pcap object
    pc.setfilter('icmp') # filter out unwanted packets
    for timestamp, packet in pc:
        print dpkt.ethernet.Ethernet(packet)
    

    输出样本:

    Ethernet(src='\x00\x03G\xb2M\xe4', dst='\x00\x03G\x06h\x18', data=IP(src='\n\x00\x01\x1c',
    dst='\n\x00\x01\x10', sum=39799, len=60, p=1, ttl=128, id=35102, data=ICMP(sum=24667,
    type=8, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi'))))
    
    Ethernet(src='\x00\x03G\x06h\x18', dst='\x00\x03G\xb2M\xe4', data=IP(src='\n\x00\x01\x10',
    dst='\n\x00\x01\x1c', sum=43697, len=60, p=1, ttl=255, id=64227, data=ICMP(sum=26715,
    data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi'))))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看