python 抓包基于pypcap

一、查询python和python-dev是否安装

dpkg-query -l python
dpkg-query -l python-dev
#没安装就先安装
sudo apt-get install python python-dev

二、安装flex和bison

sudo apt-get install flex bison

三、下载libpcap并安装

#下载地址 首页 http://www.tcpdump.org/
sudo wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
#安装(中间可能会有警告,可是不影响)
sudo tar -zxvf libpcap-1.8.1.tar.gz
cd libpcap-1.8.1/
sudo ./configure
sudo make
sudo make install

四、下载并安装pypcap

#下载地址 首页 https://pypi.python.org/pypi/pypcap
sudo wget https://pypi.python.org/packages/83/25/dab6b3fda95a5699503c91bf722abf9d9a5c960a4480208e4bad8747dd0c/pypcap-1.1.5.tar.gz#md5=4d762f3293d9d41a787ef753530e0d0c
sudo tar -zxvf pypcap-1.1.5.tar.gz 
cd pypcap-1.1.5/
sudo python setup.py install #中间会有不少警告,可是不影响

五、测试

#进入python命令行
>>> import pcap 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.linux-x86_64/egg/pcap.py", line 7, in <module>
  File "build/bdist.linux-x86_64/egg/pcap.py", line 6, in __bootstrap__
ImportError: libpcap.so.1: cannot open shared object file: No such file or directory
>>> 
#若是没有报错就表示安装完成,我在centos上没有问题,可是ubuntu上就有问题,在执行以下操做,
#注意必须是root用户模式下执行,sudo没有用,须要su登陆
$ locate libpcap.so.1 #查询文件位置
/usr/lib/x86_64-linux-gnu/libpcap.so.1.7.4
$ cd /etc/ld.so.conf.d/
$ echo "# libpcap default configuration" >> libpcap.conf
$ echo "/usr/lib/x86_64-linux-gnu/libpcap.so.1.7.4" >> libpcap.conf
$ ldconfig

写一个测试test.pypython

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 测试 pypcap


import pcap

pc=pcap.pcap()    #注,参数可为网卡名,如eth0
pc.setfilter('tcp')    #设置监听过滤器,如tcp port 80

for ptime,pdata in pc:    #ptime为收到时间,pdata为收到数据
    print ptime,pdata    #...
$ sudo python test.py #固然这些都是没有解包的数据,buffer(内存)
1483629320.81 �� q�4#�iTE(�e@@ �����ps��p�` � ����SP-P �h�
1483629322.85 �� q�4#�iTE4x�@@ �f���p<��0P���,E� ~�  >��  

 4L�
1483629322.85 �� q�4#�iTE4 �@@ �����peɩ�ƒ ������  ��  k�A  

 6߿
1483629322.85 �� q�4#�iTE4 �@@ HY���puz� �P6��  �
��  �

上面这样就表示抓包成功了,固然接下去就要解包了,这个时候要找一本关于网络协议的书,我看的是tcp-ip详解,这样边看边学应该会更好linux

相关文章
相关标签/搜索