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

相關文章
相關標籤/搜索