Python и libpcap. найти исходный mac-адрес пакета

Я пишу программу python для создания кеша mac-address с использованием pcap. Но pcap-модуль для python не имеет хорошей документации. Я нашел эту страницу http://pylibpcap.sourceforge.net/ с примером кода, и она отлично работает.

Может ли кто-нибудь изменить этот пример, чтобы он смог показать исходный mac-адрес для каждого пакета? Или укажите мне документацию, где я могу прочитать об этом …

обновленный

Вот часть кода, в которой информация об адресах mac была отключена.

def print_packet(pktlen, data, timestamp): if not data: return if data[12:14]=='\x08\x00': decoded=decode_ip_packet(data[14:]) print '\n%s.%f %s > %s' % (time.strftime('%H:%M', time.localtime(timestamp)), timestamp % 60, decoded['source_address'], decoded['destination_address']) for key in ['version', 'header_len', 'tos', 'total_len', 'id', 'flags', 'fragment_offset', 'ttl']: print ' %s: %d' % (key, decoded[key]) print ' protocol: %s' % protocols[decoded['protocol']] print ' header checksum: %d' % decoded['checksum'] print ' data:' dumphex(decoded['data']) 

Первые 14 октетов в данных – это назначение, источник mac-addr и ether type.

  decoded=decode_ip_packet(data[14:]) 

Мне нужно разобрать их, чтобы получить эту информацию. Задача выполнена.

2 Solutions collect form web for “Python и libpcap. найти исходный mac-адрес пакета”

Google «Форматы кадров Ethernet». Первые 6 октетов пакета – это MAC-адрес назначения, за которым сразу следуют 6 октетов исходного MAC-адреса.

Эта страница Википедии может помочь.

Боже мой, зачем ты это делаешь? Вместо этого используйте Scapy .

  • Как читать файлы .cap, отличные от Pyshark, которые быстрее, чем rdpcap () Scapy?
  • pcapy.findalldevs () Нет действительных интерфейсов для открытия
  • Установка pypcap на Windows 10 python 2.7 (64 бит)
  • Как определить интерфейс пакета при прослушивании сетевого трафика на всех устройствах?
  •  
    Interesting Posts for Van-Lav

    Потребление памяти Python в Linux: физическая и виртуальная память растут, а размер кучи остается неизменным

    Networkx read_gml error "networkx.exception.NetworkXError: не может tokenize u'graph 'в (3, 1)"

    matplotlib plot Ярлык вдоль линии сюжета

    почему не естественная высота кадра обновляется сразу?

    Как мы можем конвертировать 01-01-2011 19:00 в будние дни, такие как Mon, Tue .. в python?

    Как запустить скрипт perl с несколькими аргументами из php

    Как построить временные метки в python, используя matplotlib?

    Ортогональная регрессионная подгонка в методе скудных наименьших квадратов

    Это ошибка в этом способе раздувания gzip?

    При рассеянии фляжных моделей RuntimeError: «приложение, не зарегистрированное на db», было поднято

    Построение эллипсоида с помощью Matplotlib

    Итеративно писать узлы XML в python

    Доступ к регистратору через несколько модулей в протоколе Python

    песочница / запуск кода python по строкам

    Где raw_input реализован в исходном коде cpython?

    Python - лучший язык программирования в мире.