Frage

Ich schreibe Python-Programm zu bauen mac-Adresse Cache mit pcap. Aber pcap-Modul für Python hat keine gute Dokumentation. Ich habe diese Seite gefunden http://pylibpcap.sourceforge.net/ mit Codebeispiel und es funktioniert gut.

ändern kann jemand, dieses Beispiel machen es in der Lage für jedes Paket den Quell-MAC-Adresse zu zeigen? Oder zeigen Sie mir in der Dokumentation, wo ich darüber lesen können ...

aktualisiert

Hier ist ein Codeteil, wo Informationen über MAC-Adressen wurden geschnitten.

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'])

Zuerst 14 Bytes in Daten sind Ziel, Quelle mac-Adr und Ether-Typ.

    decoded=decode_ip_packet(data[14:])

Ich brauche sie zu analysieren, diese Informationen zu erhalten. Aufgabe gemacht wird.

War es hilfreich?

Lösung

Google "Ethernet-Frame-Formate". Die ersten 6 Bytes eines Pakets ist die Ziel-MAC-Adresse, die unmittelbar durch die 6 Bytes von Quell-MAC-Adresse folgt.

Die Wikipedia helfen kann.

Andere Tipps

Oh mein Gott Mann, warum tust du das? Verwenden Sie scapy statt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top