python 网络抓包

发布时间:2019-09-23 17:06:55编辑:auto阅读(2943)

    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

关键字