python语言下linux&windows下安装pcap包

0x01. 写了一个嗅探流量的工具,利用的就是pcap包对网站进行流量嗅探,但是直接安装pypcap包是出现

pcap.h not found的错误。原来准备写这篇博客的,昨天移植的时候有出现这样的问题,也忘记怎么解决

了,于是又是各种测试,看到问这个问题的挺多,给出答案的却很少。


0x02.windows下的要先按照winpcap,设置环境变量,安装python的pcap包才能成功,由于大家用的多为

linux系统,windows下就不在详细解析了。


0x03. linux下安装pcap包


如果出现make: yacc:命令未找到错误
安装bison包进行解决问题
apt-get install bison


首先要安装flex-2.6.0安装包,版本其他应该可以

下载地址 http://flex.sourceforge.net/

执行命令如下

tar  -xvf   flex-2.6.0.tar.bz2

进入flex-2.6.0目录下,执行命令

./configure

make

sudo make install


在安装libpcap-1.7.4安装包,其他版本应该也可以,具体没有测试

下载地址 http://www.tcpdump.org/

tar -zxvf libpcap-1.7.4.tar.gz

进入libpcap-1.7.4目录下,执行命令

./configure

make

sudo make install


如果安装成功,进入python命令下,import pcap不会出现错误,如下所示

python语言下linux&windows下安装pcap包_第1张图片

下一步就是我们要安装的pypcap包

下载地址

https://pypi.python.org/pypi/pypcap

解压pypcap-1.1.4.tar.gz,进入pypcap-1.1.4文件夹

安装命令

python setup.py install

安装成功后就可以进行拦截流量了,拦截流量的代码如下:

如果要想解析pcap包还需要安装dpkt包

获取http流量代码如下:

import pcap
import dpkt

pc = pcap.pcap('eth0')
pc.setfilter('tcp port 80')

for ptime,pdata in pc:
    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 and len(p.data.data.data)>0:
                http = dpkt.http.Request(p.data.data.data)
                print http.headers
结果如下

python语言下linux&windows下安装pcap包_第2张图片



你可能感兴趣的:(python)