使用pip或者conda安裝包時注意換好源,否則速度很慢。具體設置參見參考鏈接[4,5]。
使用Linux(物理主機或者虛擬機)安裝pypcap包非常容易,不再贅述。Windows10系統上安裝的坑很多,這里按照步驟做了具體說明。WinPcap和Win10存在兼容性問題,因此推薦使用Npcap替代WinPcap。Python的pcap模塊是libpcap的Python打包版。安裝pcap模塊需要下載三個組件分別安裝。
1)下載
Npcap https://nmap.org/npcap/
NpcapSDK https://nmap.org/npcap/
pypcap https://github.com/pynetwork/pypcap
2)安裝
(1)安裝Npcap
打開安裝程序即可。如果之前安裝過winpcap,會先自動卸載。
(2)安裝pypcap和NpcapSDK
1. 將NpcapSDK文件夾放到pypcap同級文件夾,文件夾命名為wpdpack
2. 打開anaconda prompt(腳本會自動設置python和conda的環境變量)
3. 進入pypcap所在目錄中,執行python setup.py install
如果提示缺少Visual C++ 14.0,則需要安裝visual studio 2017,或者只安裝缺少的開發工具。
Fixed Python3 on Windows 10 error Visual C++ 14.0 is required
(安裝缺少的開發工具需要在線下載,由於網絡問題,很可能下載不下來。)
4. 安裝成功,回到python環境。測試import pcap,檢驗是否能用。沒有報錯,一切正常,則安裝成功。
注意:
如果使用的是python3.7.2以上版本,可能會導致安裝失敗。(原因參見參考鏈接[3])。而如果用python3.6的版本,可以安裝成功。
各虛擬環境的包是相互隔離並獨立的,因此如果需要更換Python版本,則dpkt等包還需要重新安裝,pycharm interpreter里面的配置也需要切換。
為了切換版本可以使用conda創建虛擬環境的方式實現。參見參考鏈接[2]。
Pycharm里面的環境管理:
添加的路徑可以查到:
則選擇相應的已創建的Conda Environment。(注意,下圖中,New environment和用命令行conda create的效果一致)
選定並應用該解釋器后,可以看到新的環境中只有dpkt、pypcap和默認的幾個包。虛擬環境的好處就是在各環境下安裝的包不會互相沖突,起到了類似程序中命名空間的作用。
5. 測試抓包
測試腳本:
import pcap
import dpkt
pc=pcap.pcap() #注,參數可為網卡名,如eth0
pc.setfilter('tcp port 80') #設置監聽過濾器
for ptime,pdata in pc: #ptime為收到時間,pdata為收到數據
print(ptime,pdata) #...
運行效果:
參考鏈接
[1] https://visualstudio.microsoft.com/downloads/
[3] Python之pypcap庫的安裝及簡單抓包工具的實現
[4] Anaconda 鏡像使用幫助
[5] pypi 鏡像使用幫助