簡體   English   中英

在Linux上實時捕獲數據包

[英]Live packet capture on linux

我想知道是否有可能實時捕獲網絡數據包並將其保存到例如python中的變量中。 我需要一些信息來獲取它,而不是將其保存到文件中。

我需要捕獲http數據包並獲取源地址及其內容(應該是html代碼),以從中提取文本,然后對該信息進行其余的工作。 沒有必要將每個數據包保存到文件中,因為整個過程會更慢。 我一直在尋找很長一段時間的任何工具來做到這一點,但沒有成功。 請,如果您知道有什么工具可以幫助我做到這一點,請寫下它。

我確定您已經看過有關處理PCAP文件的庫的鏈接 現在的問題是如何實時獲取而不存儲在文件中。

可能最簡單的方法是使用FIFO

$ mkfifo /tmp/tcpdump.fifo

現在您可以捕獲數據並將其輸入到名為fifo的數據中

$ sudo tcpdump -s0 -i eth0 -f /tmp/tcpdump.fifo tcp port 80

並且在您的python程序中,您可以按照鏈接中的說明打開“ /tmp/tcpdump.fifo”作為輸入文件。

另外,您可以嘗試在程序中打開'/ dev / stdin'並從那里讀取數據。 然后,您可以使用Shell並跳過名為fifo的中間件,將PCAP數據直接傳遞到stdin中。

$ sudo tcpdump -s0 -i eth0 -f - tcp port 80 | ./youprogram.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM