【问题标题】:Python3 scapy/kamene extremely slowPython3 scapy/kamene 非常慢
【发布时间】:2019-06-29 08:14:40
【问题描述】:

我尝试使用 Pcap.net 进行一些 PCAP 文件分析,这需要大约 5 秒钟的时间来遍历 1GB pcap 文件中的所有可用数据包。

我现在正在尝试在 Python3 上使用 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 中都试过这个(都是虚拟化的)

【问题讨论】:

    标签: python-3.x scapy pcap


    【解决方案1】:

    首先,你没有使用 Scapy :/ 来自https://scapy.net

    Scapy 的一个独立分支于 2015 年从 v2.2.0 创建,旨在 仅支持 Python3 (scapy3k)。叉子发散了,没有跟上 进化和修复,并在没有贡献的情况下拥有自己的生活 回到斯卡皮。不幸的是,它已经被打包成python3-scapy 一些发行版,以及 PyPI 上的 scapy-python3 导致混乱 用户之间。很快就不会再出现这种情况了。 Scapy 支持 自 2.4.0 以来的 Python3 和 Python2。 Scapy v2.4.0 应该是 被青睐为官方 Scapy 代码库。叉子已重命名为 龟甲。

    卸载 kamene 和 pip install scapypip3 install scapy(或从 github 获取)可能会有所帮助。

    完成此操作后,您将找到有关如何从 2.4.4 开始加速 Scapy 的提示in the Performance section of the doc

    话虽如此,Scapy 并非旨在支持大量数据(而是旨在易于实施)。无论如何处理 1GB 可能需要一些时间:/(此外,在数据包解析等问题上,Python 比其他语言 (C) 慢。您可能永远无法匹配 Python 中的 Wireshark 速度)

    【讨论】:

    • 感谢您的信息。我对 Python 毫无用处,因此我很困惑。我最终回到了 C# 并且我正在取得进展。再次感谢。
    • 至于Python慢​​;它比其他编译语言慢。另请注意,Python 提供了与已编译库的简单挂钩。关于 Python 和速度的有趣讨论:jakevdp.github.io/blog/2014/05/09/why-python-is-slow
    • ^ Scapy 可能更应该归咎于 Python,你对钩子的看法非常正确,感谢您的说明
    猜你喜欢
    • 2020-03-24
    • 2015-05-22
    • 1970-01-01
    • 2020-07-10
    • 2017-12-12
    • 2015-06-14
    • 2013-05-14
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多