2017-07-19 159 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