J'ai du code qui écoute les "annonces" via la multidiffusion UDP. Je peux obtenir l'adresse IP de l'expéditeur, mais ce dont j'ai vraiment besoin, c'est l'adresse MAC de l'expéditeur (puisque l'adresse IP peut et va changer).Trouver l'adresse MAC de l'expéditeur d'un message UDP multidiffusion en Python?
est-il un moyen facile de le faire en Python?
Un extrait de code est inclus pour référence, mais probablement inutile.
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
# Allow multiple sockets to use the same PORT number
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Bind to the port that we know will receive multicast data
sock.bind((self.interface, MCAST_PORT))
# Tell API we are a multicast socket
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 255)
# Tell API we want to add ourselves to a multicast group
# The address for the multicast group is the third param
status = sock.setsockopt(socket.IPPROTO_IP,
socket.IP_ADD_MEMBERSHIP,
socket.inet_aton(MCAST_ADDR) + socket.inet_aton(self.interface));
data, addr = sock.recvfrom(1024)
...
Il devrait être possible avec les 'prises L2 de scapy' mais peut nécessiter des travaux: http://www.secdev.org/projects/scapy /doc/usage.html – Pierz