2013-04-18 140 views
1

我需要編寫一個網絡嗅探器和我已經決定使用Python來做到這一點。我知道演出不會是最好的,對於這種軟件我應該使用c或C++,但是一個好的原型只會對我有用。所以,我一直在與libpcap的圖書館爲Python 2.7,我能得到我所需要的,如信息: IP源和目的,相對端口,時間戳和數據包長度。 但問題是,我注意到,高流量有一個巨大的數據包丟棄。Scapy - 如何獲取統計信息?

必須說,整個過程中,這些信息被插入到一個MySQL數據庫。

因此,在我進一步與Scapy 之前,我想了解是否有一種方法可以測量在此詳細說明期間將丟失多少數據包。

謝謝

+0

或者,如果我或者能看到多少數據包在在鍵盤後結束類似於tcpdump的總結時尚被丟棄中斷CTRL-C有類似捕獲 373包'43包通過過濾器 300的數據包丟棄收到由內核 ' – MixturaDementiae

回答

0

我已經以間接方式修復。我正在使用

tcpdump -G 3600 -i interface -n -w %H-Capture.pcap 

從這裏我收集所有關於丟棄的數據包和過濾的統計信息等。請介意,儘量減少丟棄的數據包的百分比選項 -n是至關重要的,因爲它基本上是說不是解決報文中的每個主機捕獲 -G在3600秒創建每個小時即文件,而不是主要講述循環。

此後,我只是去Scapy的從CLI和Scapy的我做到以下幾點:

x = rdpcap("myfile") 
len_x = len(x) 

for i in x: 
    if TCP in i: 
     i.show() 

這將只顯示TCP數據包。如果你願意,你也可以用同樣的方法過濾UDP或ICMP等等。