So ermitteln Sie die MAC-Adressen aller Computer im Netzwerk

31

Gibt es eine einfache Möglichkeit, die MAC-Adresse aller Computer in meinem Netzwerk zu ermitteln, anstatt eine SSH für jeden Computer auszuführen, und ifconfig | grep HWaddrwenn 300 Computer im Netzwerk vorhanden sind, brauche ich wirklich eine einfache Lösung.

registrierter Nutzer
quelle
2
Der Vollständigkeit halber: arp -n 0.0.0.0 Wobei 0.0.0.0 die IP-Adresse des Geräts ist. Beachten Sie, dass Sie immer noch nacheinander suchen müssen. Manchmal möchten Sie nur eine, und dies ist sicherlich schneller als das Senden an jede Box. Was ist, wenn es sich um eine Windows-Box oder einen Windows-Drucker handelt?
d -_- b
2
sudo arp-scan --localnet
Silver Moon

Antworten:

34

Mit nmap können Sie einen Ping-Scan ausführen.

nmap -sP 192.168.254.*

Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT
Host xyzzy.lan (192.168.254.189) is up (0.00022s latency).
MAC Address: 00:0C:29:5B:A5:E0 (VMware)
Host plugh.lan (192.168.254.196) is up (0.00014s latency).
MAC Address: 00:0C:29:2E:78:F1 (VMware)
Host foo.lan (192.168.254.200) is up.
Host bar.lan (192.168.254.207) is up (0.00013s latency).
MAC Address: 00:0C:29:2D:94:A0 (VMware)
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds

Bearbeiten:

Ein sed-Skript zum Filtern der Ausgabe nach IP -> MAC - legt dies in einer Datei ab.

/^Host.*latency.*/{
    $!N
    /MAC Address/{
        s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/
    }
}  
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/

und benutze es so

nmap -sP 192.168.254.0/20 | sed -f sedscript
192.168.254.189 -> 00:0C:29:5B:A5:E0
192.168.254.196 -> 00:0C:29:2E:78:F1
Host foo.lan (192.168.254.200) is up but MAC Address cannot be found.
192.168.254.207 -> 00:0C:29:2D:94:A0
Iain
quelle
ja das ist wonach ich gesucht habe, ich lese andere nachrichten auch es ist kein cisco switch wie danke allen für die nachrichten.
Registrierter Benutzer
1
Ich habe festgestellt, dass der einzige Weg, um die MAC-Adressen zum Anzeigen zu bringen, darin besteht, nmap als root auszuführen. Außerdem scheint das Sedscript nicht mehr zu funktionieren. [Der Text neben der IP-Adresse hat sich geändert.
Monksy
Nmap-Scan-Bericht für 192.168.1.147 Host ist aktiv (0,00045s Latenz). MAC-Adresse: XX: XX: XX: XX: XX: XX
monksy
16

Verwenden Sie nmap. Es ist wichtig, dass Sie es als root ausführen, damit Sie die MAC-Adressen erhalten. Beispiel:

sudo nmap -sP 192.168.1.0/24 

Scannt 192.168.1.1 - 192.168.1.255. Schlagen Sie die CIDR-Notation im Wiki nach, wenn Sie mit dieser Subnetznotation nicht vertraut sind.

Sie sollten in der Lage sein, nmap von den Repos einer neueren Linux-Distribution abzurufen, z

sudo apt-get install nmap

oder

sudo yum install nmap

Eine Beispielausgabe aus meinem Netzwerk:

Host 192.168.1.1 is up (0.0069s latency).
MAC Address: 00:0D:54:9B:D8:F4 (3Com)
Host 192.168.1.78 is up (0.0068s latency).
MAC Address: 00:0C:29:BC:3D:1C (VMware)
Host 192.168.1.91 is up (0.0038s latency).
MAC Address: 00:0C:29:8A:F4:A3 (VMware)
Host 192.168.1.92 is up (0.0039s latency).
MAC Address: 00:0C:29:65:60:5F (VMware)
Host 192.168.1.158 is up (0.033s latency).
MAC Address: 00:0C:29:82:24:EA (VMware)
Host 192.168.1.186 is up (0.0024s latency).
MAC Address: 00:0C:29:3E:26:1F (VMware)
Host 192.168.1.190 is up (0.0066s latency).
James Little
quelle
ja deine methode ist ganz einfach.
Registrierter Benutzer
7

Solange Sie diesen Befehl von einem Host im selben Netzwerksegment ausführen, nmapwird die gesamte MAC-Adresse für jeden erkannten Host gemeldet.

Beispielsweise:

sudo nmap 192.168.1.0/24 -sP

Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST

Host old.net (192.168.1.1) appears to be up.
MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys)

Für die MAC-Adressen muss ich auf meiner Ubuntu-Box root sein. Eine einfache Methode für einen einzelnen Host besteht auch darin, einen Ping-Befehl zu senden und die arp-Tabelle mit zu betrachten, arp -awenn Sie nur Befehle verwenden möchten, die normalerweise bei der Erstinstallation einer Distribution enthalten sind:

arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0
Kyle Brandt
quelle
7

Versuchen Sie diesen Befehl:

arp-scan --interface=eth0 192.168.1.0/24
Dogan YILMAZ
quelle
Ich weiß, das ist eine sehr alte Frage. Allerdings hat nmap mir keine MAC-Adressen gegeben. Arp-Scan hat. Vielen Dank.
MikeP
5

Abhängig von Ihrer LAN-Topologie können Sie am besten die MAC-Adresstabelle auf Ihren Switches anzeigen.

Wenn Ihre Switch-Infrastruktur beispielsweise Cisco ist, können Sie es mit a versuchen

sh mac address-table

bei jedem Schalter.

Wenn Sie über viele Switches verfügen, können Sie diese Aufgabe mithilfe von SNMP automatisieren .

Eine weitere Option und (erneut) abhängig von Ihrer Topologie und Ihrem Netzwerkgerätetyp können Sie auch versuchen, die Mac-Adressen Ihrer Geräte abzurufen, die die ARP-Tabelle auf Ihren Routern anzeigen.

Mit einer dieser beiden Methoden erhalten Sie auch die Liste der Mac-Adressen aller Geräte, die an Ihre Netzwerkinfrastruktur angeschlossen sind: PCs, Drucker, Zugangspunkte usw. Im ersten Fall sogar von Geräten ohne IP-Adresse. Dies kann oder kann nicht Sie wollen, aber es kann einen Versuch wert sein.

jliendo
quelle
1

Vielleicht ist arp-scan auch eine Option:

Ein Beispiel finden Sie hier: Arp-Scan-Benutzerhandbuch

Guido van Brakel
quelle
1

Da Sie über ssh in Maschinen in Ihrem Netzwerk gesprochen haben, können Sie auch diese Abkürzung verwenden:

nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a
Niels
quelle
0

Sie können ein Programm namens SIW verwenden, es ist kostenlos und durchsucht das Netzwerk, für das keine Berechtigungen oder Argumente erforderlich sind.

URL: http://www.gtopala.com/

Verfügbar in .exe oder Vollinstallation.

Mike
quelle
.exe? Auf dem Tag steht "Linux-Netowrking"
d -_- b