使用Python嗅探模块丢失了一些数据包
问题描述:
我试过几乎所有的Python嗅探模块(pcapy,winpcapy,pypcap,scapy,socket)。使用Python嗅探模块丢失了一些数据包
我总是遇到同样的问题,我丢失了一部分数据包(大约1%〜10%)。
但同时Wireshark和tcpdump数据包永远不会丢失;也许表现?或者尝试使用多进程来做些什么?
答
从该代码
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
请提供一些您正在使用的代码。丢包可以取决于如何配置scapy的选项 – StephenG
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