Python 解析.pcap的更快方法

Python 解析.pcap的更快方法,python,packet,scapy,tcpdump,dpkt,Python,Packet,Scapy,Tcpdump,Dpkt,我正在尝试解析巨大的.pcap文件(每个文件约1-2GB)。我曾经尝试过使用scapy,但到目前为止,速度太慢了。我已经使用以下代码对计时进行了基准测试,这些代码具有不同的计数值 from scapy.all import * from scapy.layers.dns import DNSRR, DNS, DNSQR import time t0 = time.time() pcap = 'output.pcap' pkts = rdpcap(pcap, count=1000000) t1 =

我正在尝试解析巨大的.pcap文件(每个文件约1-2GB)。我曾经尝试过使用scapy,但到目前为止,速度太慢了。我已经使用以下代码对计时进行了基准测试,这些代码具有不同的计数值

from scapy.all import *
from scapy.layers.dns import DNSRR, DNS, DNSQR
import time
t0 = time.time()
pcap = 'output.pcap'
pkts = rdpcap(pcap, count=1000000)
t1 = time.time()
print(t1-t0)

rdpcap()似乎每秒只能处理800个数据包。是否有针对scapy、其他工具的优化,或者扩展此过程的好方法?每个数据包都应该是DNS。

要真正给你可靠的反馈,我需要你发布更多的代码。但从我所看到的:

我的第一个想法是使用线程(如果可能的话:我不确定代码的其余部分是什么样子)

我的第二个想法是检查rdpcap()函数的返回类型,并查看该变量类型的最大大小。这可能是因为您试图将比可用空间更多的数据放入缓冲区