如何使用python套接字来嗅探ICMP& TCP请求

时间:2014-01-14 05:26:06

标签: python sockets python-2.7 tcp icmp

我正在尝试编写一个程序来嗅出传出的ICMP& TCP请求包由python2.7 socket 但是,我只知道如何在端口上嗅探传入的数据包。

可执行该程序以嗅探任何传出的ICMP&超级用户在Llnux上的TCP数据包。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

pycap

(项目页面示例)

>>> import dpkt, pcap
>>> pc = pcap.pcap()
>>> pc.setfilter('icmp')
>>> for ts, pkt in pc:
...     print `dpkt.ethernet.Ethernet(pkt)`
...
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'))))
^CTraceback (most recent call last):
  File '<stdin>', line 1, in ?
  File 'pcap.pyx', line 298, in pcap.pcap.__next__
KeyboardInterrupt
>>>
>>> pc.stats()
(4851, 0, 0)