Python下的网络抓包库pylibpcap、pypcap、pycap这些库其实这些都是libpcap的Python绑定实现,libpcap才是真正的核心。
在http://pypi.python.org/pypi/pylibpcap/0.6.2
在http://pypi.python.org/pypi/pcapy/0.10.2
pypcap
http://code.google.com/p/pypcap/
http://www.monkey.org/~dugsong/pypcap/
http://pycap.sourceforge.net/
目前pypcap和pylibpcap比较流行,特别说一下pypcap在Linux上的编译安装时,首先用python setup.py config配置编译环境,然后使用python setup.py build或install进行编译安装。
典型的范例(抓取80端口TCP包):
import pcap
import dpkt
pc=pcap.pcap()
pc.setfilter('tcp port 80')
for ptime,pdata in pc:
print ptime,pdata
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if p.data.data.dport==80:
print p.data.data.data
------------------------------------------------------------------------------------------------------------------------------------------
在windows下,先安装winpcap和pcap import pcap import binascii