Auflösen der MAC-Adresse von der IP-Adresse in Linux


39

Ich muss ein Bash-Skript schreiben, in dem ich eine Datei erstellen muss, die die Details der IP-Adressen der Hosts und deren Zuordnung zu entsprechenden MAC-Adressen enthält.

Gibt es eine Möglichkeit, mit der ich die MAC-Adresse eines (Remote-) Hosts ermitteln kann, wenn die IP-Adresse des Hosts verfügbar ist?

Antworten:


35

Wenn Sie nur die MAC-Adresse einer bestimmten IP-Adresse herausfinden möchten, können Sie den Befehl verwenden arp, um sie nachzuschlagen, nachdem Sie das System 1 Mal mit einem Ping- Befehl benachrichtigt 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 jetzt 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 verwenden fing. Es ist normalerweise nicht installiert, daher müssen Sie es herunterladen und manuell installieren.

$ sudo fing 10.9.8.0/24

    Fing Beispiel

Verweise


Ich weiß, das ist eine alte Antwort, aber wissen Sie, wie Fing implementiert ist? Ich versuche, etwas über diese Netzwerkebene und die Tools zu lernen, um sie zu überwachen.
Akaphenom

1
@akaphenom Wenn Sie neue Fragen haben, wenden Sie sich bitte direkt an diese. Kommentare sind dafür nicht gedacht.
slm

8

Sie können den arpBefehl verwenden:

arp -an

Sie können diesen Befehl jedoch nur im LAN verwenden, wenn Sie die MAC-Adresse eines Remote-Hosts ermitteln möchten. Möglicherweise müssen Sie ein Tool verwenden, um das Paket zu erfassen tcpdumpund das Ergebnis zu analysieren.


2
tcpdump(8)zeigt Ihnen nur die lokalen MACs (dh die MAC des letzten Leg-Routers). Die MAC-Schicht-Header der Eingangspakete werden vom Router entfernt und neue zum ausgehenden Paket hinzugefügt.
Vonbrand

5

Dies ist aus meiner Frage und Antwort in Askubuntu .

Sie können den Befehl verwenden

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

nmap:Netzwerkerkundungstool und Sicherheits- / Port-Scanner. Aus dem Handbuch:

-sP(Port-Scan überspringen). Diese Option weist Nmap an, nach der Hosterkennung keinen Port-Scan durchzuführen und nur die verfügbaren Hosts auszudrucken, die auf den Scan geantwortet haben. Dies wird häufig als "Ping-Scan" bezeichnet. Sie können jedoch auch die Ausführung von Traceroute- und NSE-Hostskripten anfordern. Dies ist standardmäßig einen Schritt aufdringlicher als der Listenscan und kann häufig für dieselben Zwecke verwendet werden. Es ermöglicht die leichte Aufklärung eines Zielnetzwerks, ohne viel Aufmerksamkeit auf sich zu ziehen. Zu wissen, wie viele Hosts verfügbar sind, ist für Angreifer wertvoller als die Liste, die durch den Listenscan jeder einzelnen IP-Adresse und jedes einzelnen Hostnamens bereitgestellt wird.

-PE; -PP; -PM (ICMP-Ping-Typen). Zusätzlich zu den zuvor erläuterten ungewöhnlichen TCP-, UDP- und SCTP-Hosterkennungstypen kann Nmap die vom allgegenwärtigen Ping-Programm gesendeten Standardpakete senden. Nmap sendet ein ICMP-Paket vom Typ 8 (Echoanforderung) an die Ziel-IP-Adressen und erwartet von verfügbaren Hosts eine Antwort vom Typ 0 (Echoantwort). Leider blockieren viele Hosts und Firewalls diese Pakete jetzt, anstatt als Antwort zu fungieren benötigt von RFC 1122 [2]. Aus diesem Grund sind nur ICMP-Scans für unbekannte Ziele über das Internet selten zuverlässig genug. Für Systemadministratoren, die ein internes Netzwerk überwachen, kann dies jedoch ein praktischer und effizienter Ansatz sein. Verwenden Sie die Option -PE, um dieses Echoanforderungsverhalten zu aktivieren.

-A(Aggressive Scanoptionen). Diese Option aktiviert zusätzliche erweiterte und aggressive Optionen.

21,23,80,3389 Zu durchsuchende Ports

192.168.1.* IP-Bereich. Ersetzen Sie mit Ihrem.


-sP ist für "scanPing", es ist auch -sn, wie es scheint, in Nie-Versionen von nmap.
Meawoppl

4

Arping

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

Der Befehl sollte die MAC-Adresse in der Antwort zurückgeben. So etwas wie,

$ 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)

arpingwird als Paket iputils-arpingunter Debian bereitgestellt .


arpingAußerdem muss angegeben werden, welche Schnittstelle mit der -IOption verwendet werden soll.
Stephen Kitt

Sie können arping -f verwenden, um nach der ersten Antwort zu beenden.
Ryan Griggs
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.