2

我正在尝试解析巨大的 .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。

4

1 回答 1

0

为了真正给你可靠的反馈,我需要你发布更多的代码。但据我所见:

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

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

于 2016-09-01T15:59:23.323 回答