我想通过Python(version2.6嗅出在我的电脑中的所有HTTP数据包..这可能吗?我能做到这一点与Scapy的,或没有其他外部模块?
Answer 1:
Scrapy只是从网页或类似结构的文档中提取数据。
要实际读取网卡来的数据包的性能最好的选择很可能是使用具有Python绑定一个C / C ++ API。
例如Wireshark的有Python的API 。
Pcapy是使用libpcap的数据包捕获模块。
libpcap的是抓包库TCPDUMP书面和也Wireshark的使用。
另一种选择是尝试dpkt Python模块。 这里是一个很好的写了 。 下面是一个例子使用使用dpkt和PCAP嗅出HTTP报文。
编辑 :哎呀,我看错Scapy的。 由于根!
至于你提到的Scapy的是,还使用libpcap的另一个Python模块。 这个文件有嗅探的例子。
如果您有关于Python 2.7运行看看这个麻烦岗位 。
Answer 2:
https://github.com/KimiNewt/pyshark
Python包装的tshark
用法:
>>> capture = pyshark.LiveCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 packets)>
>>> capture[3]
<UDP/HTTP Packet>
for packet in capture.sniff_continuously(packet_count=5):
print 'Just arrived:', packet
Answer 3:
pypcap, https://code.google.com/p/pypcap/简化的libpcap Python扩展模块的面向对象的-当前tcpdump.org版本,旧版本航运与一些BSD操作系统,和WinPcap的端口,用于Windows.This是Windows version.And如果您正在使用#nix中,只需安装PCAP和dpkt模块。
文章来源: How to sniff HTTP packets in python?