PYTHON黑帽編程 4.1 SNIFFER(嗅探器)之數據捕獲--補充


 

荒廢了一個多月了,重新撿起來,手生了不少。發現在《4.1下》的文章里沒有 提到pcap庫,實在是不應該。

在網絡數據分析的工具中,tcpdump絕對是大名鼎鼎,tcpdump底層是libpcap庫,由C語言編寫。 Pcapy模塊則是基於libpcap的Python接口。pcapy在github上的項目地址為: https://github.com/CoreSecurity/pcapy。

下面我們來看看如何使用pcapy實現數據包的捕獲。

#!/usr/bin/python

import pcapy

dev = "eth0"
filter = "tcp and port 80"


def handle_packet(hdr, data):
    print data

pcap = pcapy.open_live(dev, 1500, 0, 100)
pcap.setfilter(filter)
pcap.loop(0, handle_packet)

上面的代碼很簡單,首先導入pcapy模塊,之后定義了兩個變量,dev為要監聽的網卡, filter是BPF 格式的過濾表達式,這里我們只捕獲http協議的數據。 handle_packet方法是用來處理捕獲的數據包的邏輯, 這里我們只是簡單的打印捕獲的數據,在之后的文章中,我們會繼續擴展該方法,用來 做數據解析。

最后三行代碼是我們使用pcapy進行數據捕獲的具體應用。

pcap = pcapy.open_live(dev, 1500, 0, 100)

open_live方法第一個參數是要打開的設備,第二個參數是捕獲數據包的大小, 第三個參數是否打開混雜模式,第四個參數是等待數據包的延遲時間,該方法返回一個 pcapy對象。

pcap.setfilter(filter)

調用setfilter方法,設置過濾器。

pcap.loop(0, handle_packet)

調用loop方法,開始執行數據包捕獲,該方法的第一個參數為執行次數,小於或等於0為不限制, 第二個參數為數據包處理函數。

好了,就補充說明這么多,運行結果如下:


最后感謝那些不離不棄的朋友們!

 

4.2節《4.1 Sniffer(嗅探器)之數據分析》已經在微信訂閱號搶先發布,進入訂閱號(二維碼在下方),從菜單“精華”—>”Python黑帽編程進入即可。

 

查看完整系列教程,請關注我的微信訂閱號(xuanhun521,下方二維碼),回復“python”。問題討論請加qq群:Hacking (1群):303242737   Hacking (2群):147098303。

玄魂工作室

歡迎關注“玄魂工作室”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM