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 .

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