我试图使用Pcap.net进行一些PCAP文件分析,这花了大约五秒钟的时间才能遍历1GB pcap文件中的所有可用数据包。
我现在正在尝试在Python3上使用Scapy,无论出于什么原因,Scapy都被称为Kamene,但是从字面上来看,要花很长时间才能解析该文件,并且CPU活动达到100%,所以我显然做错了。这是代码:
from kamene.all import *
packetCount = 0
with PcapReader("C:\\Testing\\pcap\\maccdc2012_00000.pcap") as reader:
for packet in reader:
packetCount += 1
print(packetCount)
运行时,我得到:
WARNING: No route found for IPv6 destination :: (no default route?).
This affects only IPv6
<UNIVERSAL><class 'kamene.asn1.asn1.ASN1_Class_metaclass'>
该UNIVERSAL消息一遍又一遍地重复出现,运行了五分钟后,我放弃了。有谁知道发生了什么吗?我在蠢吗?
我已经在Ubuntu和Windows的Visual Studio(均已虚拟化)中进行了尝试
答案 0 :(得分:3)
首先,我首先没有使用Scapy:/ 来自https://scapy.net
Scapy的独立分支是从2015年的v2.2.0版本创建的,旨在 仅支持Python3(scapy3k)。叉子发散了,没有跟上 进化和修复,并且没有贡献就拥有了自己的生命 回到Scapy。不幸的是,它已被打包为python3-scapy 一些发行版,以及PyPI上的scapy-python3导致混乱 在用户之间。现在不应该再这样了。 Scapy支撑 从2.4.0开始,除了Python2之外还有Python3。 Scapy v2.4.0应该是 被视作Scapy的官方代码库。叉子已重命名为 假面。
卸载kamene和pip install scapy
或pip3 install scapy
(或从github获取)可能会有所帮助。
话虽如此,Scapy并非旨在支持大量数据(而是旨在易于实现)。无论如何,处理1GB可能要花一些时间:/(此外,在口袋解剖方面,Python比其他语言(C)要慢。您可能永远无法在Python中达到Wireshark的速度)