Вопрос

Я пишу Python Program для создания кэша MAC-адреса с помощью 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 и эфирный тип.

    decoded=decode_ip_packet(data[14:])

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

Это было полезно?

Решение

Google "Форматы кадров Ethernet". Первые 6 октетов пакета - это MAC-адрес назначения, который сразу же сопровождается 6 октетами исходного MAC-адреса.

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

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

Боже мой, человек, почему ты это делаешь? Использовать Скаксировать вместо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top