Ho bisogno di scrivere uno script bash in cui devo creare un file che contenga i dettagli degli indirizzi IP degli host e la loro mappatura con gli indirizzi MAC corrispondenti.
C'è un modo possibile con cui posso scoprire l'indirizzo MAC di qualsiasi host (remoto) quando l'indirizzo IP dell'host è disponibile?
Risposta accettata:
Se vuoi solo scoprire l'indirizzo MAC di un dato indirizzo IP puoi usare il comando arp
per cercarlo, dopo aver eseguito il ping del sistema 1 volta.
Esempio
$ 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
Ora cerca nella tabella ARP:
$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0
fin
Se vuoi controllare l'intera LAN alla ricerca di indirizzi MAC, puoi usare lo strumento da riga di comando fing
fare così. In genere non è installato, quindi dovrai scaricarlo e installarlo manualmente.
$ sudo fing 10.9.8.0/24
Utilizzo dell'ip
Se scopri di non avere arp
o fing
disponibili, puoi usare il comando di iproute2 ip neigh
per vedere invece la tabella ARP del tuo sistema:
$ 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
Riferimenti
- Equivalente di iwlist per vedere chi c'è in giro?