Python3 scapy / kamene очень медленный - PullRequest
0 голосов
/ 05 февраля 2019

Я пытался использовать Pcap.net для некоторого анализа файла PCAP, который занял около пяти секунд, чтобы просмотреть все доступные пакеты в файле pcap объемом 1 ГБ.

Я сейчас пытаюсь использовать Scapy на Python3, который по какой-либо причине называется Kamene, но анализ файла занимает буквально целую вечность, а загрузка процессора достигает 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, так и в Visual Studio для Windows (оба виртуализированы)

1 Ответ

0 голосов
/ 06 февраля 2019

Во-первых, во-первых, вы не используете Scapy: / из https://scapy.net

Независимый форк Scapy был создан из v2.2.0 в 2015 году с целью поддержки только Python3 (scapy3k).Вилка разошлась, не следила за эволюцией и исправлениями, и имела свою собственную жизнь без вклада обратно в Scapy.К сожалению, он был упакован как python3-scapy в некоторых дистрибутивах и как scapy-python3 для PyPI, что приводит к путанице среди пользователей.Это не должно иметь место больше скоро.Scapy поддерживает Python3 в дополнение к Python2 начиная с 2.4.0.Scapy v2.4.0 следует отдавать предпочтение официальной кодовой базе Scapy.Вилка была переименована в kamene.

Удалите kamene и pip install scapy или pip3 install scapy (или получите его из github) может помочь.

Как говорится, Scapy isn 't предназначен для поддержки очень большого объема данных (но скорее для того, чтобы его было легко реализовать).Вероятно, в любом случае потребуется некоторое время для обработки 1 ГБ: / (Кроме того, Python медленнее, чем другие языки (C) в таких вопросах, как рассечение в кармане. Вероятно, вы никогда не сравнитесь со скоростью Wireshark в Python)

...