IPv6 декодер для pcapy / impacket - PullRequest
       16

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

1 голос
/ 16 декабря 2008

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

Кто-нибудь получает один?

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

Ответы [ 4 ]

1 голос
/ 03 июля 2009

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

1 голос
/ 22 декабря 2008

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.

0 голосов
/ 27 июня 2009

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

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

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

Удачи
Emilio

0 голосов
/ 21 декабря 2008

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

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

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

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

Больше информации о PCAP (libpcap) в целом здесь .

...