Python et libpcap. trouver l'adresse MAC source de paquet
-
26-09-2019 - |
Question
Je vous écris programme python pour construire cache-mac adresse à l'aide PPCE. Mais le module PPCE pour python n'a pas une bonne documentation. J'ai trouvé cette page http://pylibpcap.sourceforge.net/ avec l'exemple de code et il fonctionne très bien.
Quelqu'un peut-il modifier cet exemple pour le rendre capable de montrer le mac adresse de source pour chaque paquet? Ou me pointer à la documentation où je peux lire à ce sujet ...
mise à jour
Voici une partie de code où des informations sur les adresses MAC ont été coupées.
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'])
First 14 octets de données de destination, la source mac-addr et du type éther.
decoded=decode_ip_packet(data[14:])
Je dois les analyser pour obtenir cette information. La tâche est fait.
La solution
Google "formats de trame Ethernet". Les 6 premiers octets d'un paquet est l'adresse MAC de destination, qui est immédiatement suivi par les 6 octets de l'adresse MAC source.
la page Wikipédia peut aider.
Autres conseils
Oh mon homme dieu, pourquoi fais-tu cela? Utilisez Scapy à la place.