Декодер IPv6 для pcapy / impacket

Я использую библиотеку pcapy / удар для декодирования сетевых пакетов на Python. У него есть IP-декодер, который знает о синтаксисе пакетов IPv4, но, очевидно, не имеет декодера IPv6.

У кого-нибудь есть?

В частной переписке разработчики Impacket говорят, что лучше начать с Scapy.

Похоже, IPv6 был добавлен в impacket: code.google.com/p/impacket/downloads/…

rupello 25.11.2012 15:11
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
3 412
4

Ответы 4

Я никогда раньше не использовал pcapy, но использовал libpcap в проектах C. Как указано на странице pcapy, он не связан статически с libcap, поэтому вы можете перейти на более новую версию с поддержкой IPv6.

Согласно журнал изменений libpcap, версия 1.0, выпущенная 27 октября 2008 года, имеет поддержку IPv6 по умолчанию (предполагается, что IPv6 будет намного дольше, но теперь он скомпилирован по умолчанию с этой опцией), поэтому вы должны иметь возможность захватывать трафик IPv6 с этой версией. . Последний выпуск pcapy выпущен 27 марта 2007 г., поэтому он должен включать максимум версии 0.9.8 libcap, выпущенной 10 сентября 2007 г.

Я не знаю, будет ли этого достаточно для вас, чтобы иметь возможность захватывать трафик IPv6, поскольку pcapy API, вероятно, потребует некоторых изменений для его поддержки, и это на крыше разработчика pcapy.

Обновлять: очевидно, что pylibpcap, оболочка python для libpcap, имеет более новые версии, чем pcapy, поэтому новые функции libpcap должны поддерживаться лучше.

Дополнительная информация о PCAP (libpcap) в целом здесь.

Я говорил не о захватывать пакетов IPv6 (что-то, что libpcap делает уже очень давно), а об их декодировании. libpcap не декодирует, вам придется делать это самостоятельно с помощью низкоуровневых трюков C. pcapy поставляется с декодерами.

bortzmeyer 22.12.2008 00:00

Scapy, рекомендованный разработчиками Impacket, в настоящее время не имеет декодирования IPv6. Но для этого есть неофициальное расширение.

С этим расширением он работает:

for packet in traffic:
  if packet.type == ETH_P_IPV6 or packet.type == ETH_P_IP:
    ip = packet.payload
    if (ip.version == 4 and ip.proto == UDP_PROTO) or \
       (ip.version == 6 and ip.nh == UDP_PROTO):
        if ip.dport == DNS_PORT and ip.dst == ns:
            all_queries = all_queries + 1

но это ужасно медленно для больших следов. Так что, возможно, мне все же придется попробовать Impacket или даже вернуться к C.

Вы можете использовать действительно полезную однофайловую библиотеку от Google из

http://code.google.com/p/ipaddr-py/

который поддерживает IPv4, IPv6, проверку IP, управление маской сети и префиксом и т. д. Он хорошо закодирован и задокументирован.

Удачи Эмилио

это можно сделать в Ubuntu с помощью apt-get install python-ipaddr

Bruce Barnett 31.05.2013 00:16

Вы можете изучить dpkt, еще одну библиотеку для синтаксического анализа / построения пакетов. Он был написан автором pypcap, другой оболочки libpcap, но не должно быть слишком сложно заставить ее работать с pcapy, чтобы увидеть, быстрее ли он для ваших целей, чем Scapy.

Другие вопросы по теме