web-dev-qa-db-fra.com

Résolution de l'adresse MAC à partir de l'adresse IP sous Linux

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 mappage avec les adresses MAC correspondantes.

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

41
Mandar Shinde

Si vous voulez simplement trouver l'adresse MAC d'une adresse IP donnée, vous pouvez utiliser la commande arp pour la rechercher, une fois que vous avez pingé le système 1 fois.

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

Recherchez maintenant dans la table ARP:

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

doigt

Si vous souhaitez balayer l'intégralité du LAN pour les adresses MAC, vous pouvez utiliser l'outil de ligne de commande fing pour ce 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

 fing example

Utiliser ip

Si vous trouvez que vous n'avez pas les commandes arp ou fing disponibles, vous pouvez utiliser la commande iproute2 ip neigh pour voir la table ARP de votre système à la place:

$ 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

Références

40
slm

Vous pouvez utiliser la commande arp:

arp -an

Mais vous ne pouvez utiliser cette commande qu'en LAN, si vous voulez trouver l'adresse MAC de tout hôte distant, vous devez peut-être utiliser un outil pour capturer le paquet comme tcpdump et analyser le résultat.

9
cuonglm

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

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 (Ignorer l'analyse des ports). Cette option indique à Nmap de ne pas effectuer d’analyse de port après la découverte de l’hôte et d’imprimer uniquement les hôtes disponibles qui ont répondu à l’analyse. Ceci est souvent appelé "analyse ping", mais vous pouvez demandent également que les scripts traceroute et NSE Host soient exécutés. Ceci est par défaut 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. Savoir combien les hôtes sont en place est plus précieux pour les attaquants que la liste fournie par l'analyse de la liste de chaque IP et nom d'hôte.

-PE; -PP; -PM (ICMP Ping Types). En plus des types de découverte d'hôte TCP, UDP et SCTP inhabituels discutés 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) vers les adresses IP cibles, en attendant un type 0 (réponse d'écho) en retour des hôtes disponibles. Malheureusement pour les explorateurs du réseau, de nombreux hôtes et pare-feu bloquent maintenant ces paquets, plutôt que de répondre comme requis par 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, elles peuvent être une approche pratique et efficace. Utilisez l'option -PE pour activer cette option. comportement de demande d'écho.

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

21,23,80,3389 Ports de recherche

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

5
Maythux

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)

arping est fourni par le package iputils-arping sur Debian.

4
hookman