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

分類:技術 時間:2017-01-13

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

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

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

#!/usr/bin/pythonimport pcapydev = quot;eth0quot;filter = quot;tcp and port 80quot;def handle_packet(hdr, data):    print datapcap = 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(嗅探器)之數據分析 》已經在微信訂閱號搶先發布,進入訂閱號(二維碼在下方),從菜單 “精華 ”—gt;”Python 黑帽編程 進入即可。

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

歡迎關注“玄魂工作室”


Tags: Python

文章來源:http://www.cnblogs.com/xuanhun/p/6278985.html


ads
ads

相關文章
ads

相關文章

ad