您的位置:首页 > 运维架构 > Linux

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

2016-03-29 22:26 609 查看
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不会出现错误,如下所示



下一步就是我们要安装的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
结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: