it-swarm.com.de

Wie kann ich alle IPs im verbundenen Netzwerk auflisten, vorzugsweise über Terminal?

Unter Ubuntu 10.10 habe ich mich gefragt, ob es einen Befehlszeilenbefehl gibt, der alle IP-Adressen von Geräten auflistet, die mit dem Netzwerk verbunden sind.

Ich würde dies beispielsweise verwenden, um alle Computer aufzulisten, die mit meinem Heimnetzwerk verbunden sind. Im Idealfall muss es sich um eine Befehlszeile handeln, da ich sie in C++ ausführen werde.

Irgendwelche Ideen?

212

Schauen Sie sich den arp-scan Befehl an - Sie müssen ihn wahrscheinlich installieren, zB:

Sudo apt-get install arp-scan

http://manpages.ubuntu.com/manpages/hardy/man1/arp-scan.1.html

Und um es näher zu erläutern:

Sudo arp-scan --interface=eth0 --localnet

Wobei eth0 dein Gerät ist. Sie finden Ihr Gerät mit:

ifconfig
237
Linker3000

Verwenden Sie nmap. Beispiel: nmap -sn 10.10.10.0/24 Der Arp-Cache teilt Ihnen nur die mit, mit denen Sie in letzter Zeit Kontakt aufgenommen haben.

110
Keith

In Windows wäre dies "arp -a". Ich glaube, dass ein Äquivalent dazu in Linux "arp -e" wäre.

Diese Informationen finden Sie auf der Manpage für arp:

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).
19
David

Wenn Ihr Netzwerk 192.168.0.0/24 ist, erstellen Sie eine ausführbare Datei mit dem folgenden Code. Ändern Sie den 192.168.0 in Ihr aktuelles Netzwerk.

#!/bin/bash
for ip in 192.168.0.{1..254}; do
  ping -c 1 -W 1 $ip | grep "64 bytes" &
done
15
Anders Larsson

Versuchen Sie, nmap (Sudo apt-get install nmap) zu installieren, und geben Sie nmap 192.168.1.0/24 ein, indem Sie 192.168.1 durch die ersten drei Teile Ihrer IP-Adresse ersetzen (finden Sie es mit ip addr heraus).

Sie können auch eine (meiner Erfahrung nach) etwas ungenauere Karte eines Netzwerks erstellen, indem Sie ping 192.168.1.255 ausführen (wobei 192.168.1 erneut ersetzt wird), wodurch sollte eine ping für jeden Computer im Netzwerk ausgegeben wird, meiner Erfahrung nach jedoch nicht immer richtig funktionieren.

12
Samadi

Ist auf einem Nexus mit tmux auf Folgendes gestoßen, da arp-scan nicht im Repository enthalten ist, aber nmap vorinstalliert ist und nur die IP-Adressen anzeigt:

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'
2
zentek

Für eine kompaktere Liste der angeschlossenen Geräte:

nmap -sL 192.168.0.* | grep \(1

Erläuterung.

nmap -sL 192.168.0.* listet alle IPs im Subnetz auf und markiert diejenigen, die den Namen haben:

Nmap scan report for 192.168.0.0
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Nmap scan report for 192.168.0.2
...
Nmap scan report for Android-473e80f183648322.Dlink (192.168.0.53)
...
Nmap scan report for 192.168.0.255

Da alle interessanten Datensätze mit Klammern ( und Ziffer 1 beginnen, filtern wir das mit | grep \(1 (Backslash wird benötigt, um Klammern zu umgehen)

Skurril
Beachten Sie, dass nmap bei zwei Geräten mit demselben Namen nur das Gerät anzeigt, das mit dem Router verbunden war last

0

Ausarbeitung der Antwort von Anders Larrson -

#!/bin/bash
function scan ()
{
    for ip in $1.{1..254}; do
        ping -c 1 -W 1 $ip &
    done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$:\1 (\2):p'
}

if [ $1 ]; then
    for baseip; do
        scan $baseip
    done
else
    scan 192.168.1
fi
0
Mathieu CAROFF