Ich muss ein Bash-Skript schreiben, in dem ich eine Datei erstellen muss, die die Details der IP-Adressen der Hosts und ihre Zuordnung zu den entsprechenden MAC-Adressen enthält.
Gibt es eine Möglichkeit, die MAC-Adresse eines (entfernten) Hosts herauszufinden, wenn die IP-Adresse des Hosts verfügbar ist?
Akzeptierte Antwort:
Wenn Sie nur die MAC-Adresse einer bestimmten IP-Adresse herausfinden möchten, können Sie den Befehl arp
verwenden um es nachzuschlagen, sobald Sie das System 1 Mal angepingt haben.
Beispiel
$ 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
Schauen Sie nun in der ARP-Tabelle nach:
$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0
fing
Wenn Sie das gesamte LAN nach MAC-Adressen durchsuchen möchten, können Sie das Befehlszeilentool fing
verwenden dazu. Es wird normalerweise nicht installiert, also müssen Sie es herunterladen und manuell installieren.
$ sudo fing 10.9.8.0/24
IP verwenden
Wenn Sie feststellen, dass Sie den arp
nicht haben oder fing
verfügbaren Befehle, könnten Sie den Befehl ip neigh
von iproute2 verwenden um stattdessen die ARP-Tabelle Ihres Systems zu sehen:
$ 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
Referenzen
- Äquivalent zu iwlist, um zu sehen, wer in der Nähe ist?