2017-07-19 158 views
0

我試過幾乎所有的Python嗅探模塊(pcapy,winpcapy,pypcap,scapy,socket)。使用Python嗅探模塊丟失了一些數據包

我總是遇到同樣的問題,我丟失了一部分數據包(大約1%〜10%)。

但同時Wireshark和tcpdump數據包永遠不會丟失;也許表現?或者嘗試使用多進程來做些什麼?

+1

請提供一些您正在使用的代碼。丟包可以取決於如何配置scapy的選項 – StephenG

+0

ok.i使用來自www.secdev.org/projects/scapy/的一些示例代碼: from scapy.all import * from scapy.layers import http def http_header( ): 做些事情; packet = sniff(prn = http_header,store = 0) 以及如何檢查配置的scapy。 thx! – Poisonx

回答

1

從該代碼

from scapy.all import * 
from scapy.layers import http 
def http_header(): 
    do something 

packet=sniff(prn=http_header,store=0) 

store 0就是問題所在。它基本上說只有儘快處理包,不要緩衝。使用sniff(prn=http_header)運行相同的代碼,並且不會丟棄任何數據包

+0

感謝你的回答,我試着用嗅探(prn = http_header)來嘗試它,但它仍然丟失,我發現python進程內存泄漏,實際上,我將運行該程序很長一段時間。所以我需要它。 – Poisonx