Résolution d'adresse MAC à partir d'une adresse IP sous Linux

39

J'ai besoin d'écrire un script bash dans lequel je dois créer un fichier contenant les détails des adresses IP des hôtes et leur correspondance avec les adresses MAC correspondantes.

Existe-t-il un moyen possible de connaître l'adresse MAC d'un hôte (distant) lorsque l'adresse IP de l'hôte est disponible?

Mandar Shinde
la source

Réponses:

36

Si vous souhaitez simplement connaître l'adresse MAC d'une adresse IP donnée, vous pouvez utiliser la commande arppour la rechercher, une fois que vous avez envoyé une commande ping au système.

Exemple

$ ping skinner -c 1
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_seq=1 ttl=64 time=3.09 ms

--- skinner.bubba.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.097/3.097/3.097/0.000 ms

Maintenant, regardez dans la table ARP:

$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0

du bout des doigts

Si vous souhaitez balayer l'ensemble du réseau local pour les adresses MAC, vous pouvez utiliser l'outil de ligne de commande fingpour le faire. Il n'est généralement pas installé, vous devrez donc le télécharger et l'installer manuellement.

$ sudo fing 10.9.8.0/24

    exemple de doigt

En utilisant ip

Si vous constatez que les commandes arpou ne sont pas fingdisponibles, vous pouvez utiliser la commande de iproute2 ip neighpour afficher le tableau ARP de votre système:

$ ip neigh
192.168.1.61 dev eth0 lladdr b8:27:eb:87:74:11 REACHABLE
192.168.1.70 dev eth0 lladdr 30:b5:c2:3d:6c:37 STALE
192.168.1.95 dev eth0 lladdr f0:18:98:1d:26:e2 REACHABLE
192.168.1.2 dev eth0 lladdr 14:cc:20:d4:56:2a STALE
192.168.1.10 dev eth0 lladdr 00:22:15:91:c1:2d REACHABLE

Les références

slm
la source
Je sais que c'est une vieille réponse, mais avez-vous une idée de la façon dont Fing est implémenté? J'essaie de connaître cette couche de réseau et les outils pour la surveiller.
akaphenom
1
@akaphenom Si vous avez de nouvelles questions, n'hésitez pas, les commentaires ne sont pas destinés à cela.
slm
mais n'est pas arpobsolète? Comment puis-je faire cela avec ip?
math2001
1
@ math2001 - il n'y a pas 5 ans, j'ai ajouté un exemple montrant comment utiliser ip.
slm
8

Vous pouvez utiliser la arpcommande:

arp -an

Mais vous ne pouvez utiliser cette commande que sur un réseau local. Si vous souhaitez connaître l'adresse MAC d'un hôte distant, vous devez peut-être utiliser un outil pour capturer le paquet tcpdumpet analyser le résultat.

cuonglm
la source
2
tcpdump(8)ne vous montrera que les adresses MAC locales (c.-à-d. l'adresse MAC du dernier routeur). Les en-têtes de couche MAC des paquets d'entrée sont supprimés par le routeur et de nouveaux sont ajoutés au paquet sortant.
vonbrand
5

Ceci est de ma question et réponse dans askubuntu .

Vous pouvez utiliser la commande

   sudo nmap -sP -PE -PA21,23,80,3389 192.168.1.*

nmap:Outil d'exploration de réseau et scanner de sécurité / port. Du manuel:

-sP(Passer le scan du port). Cette option indique à Nmap de ne pas effectuer d'analyse du port après la découverte d'hôte et d'imprimer uniquement les hôtes disponibles ayant répondu à l'analyse. Ceci est souvent appelé «analyse du ping», mais vous pouvez également demander que les scripts d'hôte traceroute et NSE soient exécutés. Il s'agit par défaut d'une étape plus intrusive que l'analyse de liste et peut souvent être utilisé aux mêmes fins. Il permet une reconnaissance légère d'un réseau cible sans attirer beaucoup d'attention. Pour les attaquants, il est plus utile de connaître le nombre d'hôtes actifs que la liste fournie par l'analyse de la liste de chaque adresse IP et nom d'hôte.

-PE; -PP; -PM (Types de Ping ICMP). Outre les types de découverte inhabituels des hôtes TCP, UDP et SCTP décrits précédemment, Nmap peut envoyer les paquets standard envoyés par le programme ping omniprésent. Nmap envoie un paquet ICMP de type 8 (demande d'écho) aux adresses IP cibles, en attendant un type 0 (réponse d'écho) en retour des hôtes disponibles. Malheureusement pour les explorateurs de réseau, de nombreux hôtes et pare-feu bloquent désormais ces paquets, plutôt que de répondre comme suit: requis par la RFC 1122 [2]. Pour cette raison, les analyses ICMP uniquement sont rarement suffisamment fiables contre des cibles inconnues sur Internet. Mais pour les administrateurs système surveillant un réseau interne, ils peuvent constituer une approche pratique et efficace. Utilisez l'option -PE pour activer ce comportement de demande d'écho.

-A(Options d'analyse agressives). Cette option active des options avancées et agressives supplémentaires.

21,23,80,3389 Ports à parcourir

192.168.1.* Plage d'IP. remplacez par le vôtre.

Maythux
la source
-sP est pour "scanPing", il est aussi -sn jamais dans les versions de nmap semble-t-il.
Meawoppl
4

arping

arping -I <interface> -c 1 <host>

La commande doit renvoyer l'adresse MAC dans la réponse. Quelque chose comme,

$ arping -I eth0 -c1 192.168.1.2
ARPING 192.168.1.2 from 192.168.1.5 eth0
Unicast reply from 192.168.1.2 [08:01:27:38:EF:32]  0.746ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

arpingest fourni par paquet iputils-arpingsur Debian.

nègre
la source
arpingIl faut également savoir quelle interface utiliser, avec l' -Ioption.
Stephen Kitt
Vous pouvez utiliser arping -f pour quitter après la première réponse.
Ryan Griggs le