La recherche de l'hôte avec l'adresse MAC à l'aide de Python
Je voudrais pour rechercher une adresse MAC donnée sur mon réseau, le tout dans un script Python. J'ai déjà une carte de toutes les adresses IP dans le réseau, mais je ne peux pas comprendre comment glaner de l'adresse MAC. Des idées?
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin ARP. Python à la bibliothèque standard n'inclut pas le code pour que, de sorte que vous devez appeler un programme externe (votre système d'exploitation peut avoir un 'arp' utilitaire) ou vous avez besoin pour construire les paquets vous-même (éventuellement avec un outil comme Scapy.
OriginalL'auteur Allen
Cet article, "Envoyer fabriqués à la main de Trames Ethernet en Python (ARP par exemple)", semble être exactement ce que vous cherchez.
OriginalL'auteur alif
Je ne pense pas qu'il y est un construit de manière à obtenir à partir de Python lui-même.
Ma question est, comment êtes-vous d'obtenir les informations IP de votre réseau?
À obtenir à partir de votre ordinateur local, vous pourriez analyser ifconfig (unix) ou ipconfig (windows) avec peu de difficulté.
OriginalL'auteur Benjamin W. Smith
Si vous voulez un pur Python solution, vous pouvez prendre un coup d'oeil à Scapy de l'artisanat des paquets (vous devez envoyer une requête ARP, et d'inspecter les réponses). Ou si vous n'avez pas l'esprit en invoquant programme externe, vous pouvez utiliser
arping
(sur un*x systèmes, je ne sais pas d'un équivalent Windows).OriginalL'auteur Sylvain Defresne
Il semble qu'il n'y a pas de façon native de le faire avec Python. Votre meilleur pari serait d'analyser la sortie de "ipconfig /all" sur Windows ou la commande "ifconfig" sur Linux. Envisager d'utiliser des os.popen() avec des expressions régulières.
OriginalL'auteur Martin Cote
Dépend de votre plate-forme. Si vous êtes à l'aide de *nix, vous pouvez utiliser le 'arp' commande de l'adresse mac pour une IP donnée (en supposant IPv4) adresse. Si cela ne fonctionne pas, vous pouvez tester l'adresse et ensuite chercher, ou si vous avez accès au réseau brute (à l'aide de BPF ou un autre mécanisme), vous pouvez envoyer vos propres paquets ARP (mais c'est sans doute exagéré).
OriginalL'auteur nsayer
Vous voulez analyser la sortie de 'arp', mais le noyau de cache ARP contient uniquement les adresses IP(es), si ces hôtes ont communiqué avec l'hôte sur lequel le script Python est en cours d'exécution.
ifconfig peut être utilisé pour afficher les adresses MAC des interfaces locales, mais pas ceux sur le réseau local.
OriginalL'auteur EmmEff
Mark Pilgrim décrit comment le faire sur Windows pour la machine actuelle avec le Netbios module ici. Vous pouvez obtenir le Netbios module dans le cadre du package Win32 disponible à python.org. Malheureusement pour le moment je ne trouve pas de docs sur le module.
OriginalL'auteur Joe Skora
que python n'était pas destiné à faire face aux OS (c'est censé être interprétées et de la croix-plate-forme), je voudrais exécuter une commande externe pour le faire:
dans unix, la commande est
ifconfig
si vous lancez un tuyau que vous obtenez le résultat souhaité:
OriginalL'auteur akiva