python 网络抓包

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

你可能感兴趣的:(python)