In meiner Arbeit steckt viel Computer und ich möchte einen Witz machen. Ich kann den Computer über das Netzwerk schließen, aber es fällt mir schwer, IP-Adressen zu finden.
Wie kann ich einfach alle Online-IP-Adressen von 192.168.1.aa bis 192.168.1.zz finden?
networking
Eric Carvalho
quelle
quelle
angry ip scanner
Antworten:
Im Allgemeinen
nmap
ist es sehr nützlich, Netzwerke schnell zu scannen.Geben Sie zum Installieren von nmap den folgenden Befehl in das Terminal ein:
Geben Sie nach der Installation der Anwendung den folgenden Befehl ein:
Hier sehen Sie, welche Hosts auf Ping-Anfragen im Netzwerk zwischen 192.168.1.0 und 192.168.1.255 geantwortet haben.
Für ältere Versionen von Nmap verwenden Sie
-sP
:Weitere Referenzen finden Sie auf den folgenden Seiten:
NMAP-Installationshandbuch
NMAP-Referenzhandbuch
Es ist ein sehr nützliches Werkzeug zum Lernen.
quelle
Handelt es sich bei allen Computern in Ihrem Netzwerk um Ubuntu oder eine andere Distribution, die
avahi-daemon
( DNS-SD ) verwendet, können Sie eine detaillierte Liste dieser Computer (mit Hostname und IP-Adresse) abrufen, indem Sie folgende Schritte ausführen:Wenn Sie alle in Ihrem Netzwerk verwendeten IP-Adressen kennen möchten, können Sie Folgendes verwenden
arp-scan
:Da es nicht standardmäßig installiert ist, müssen Sie es mit installieren
sudo apt-get install arp-scan
.arp-scan
Senden Sie ARP-Pakete an das lokale Netzwerk und zeigen Sie die empfangenen Antworten an, sodass auch Firewall-Hosts angezeigt werden (die den Datenverkehr auf der Basis von IP-Paketen blockieren).quelle
arp-scan
nicht alle Geräte gefunden, die meinem drahtlosen Netzwerk zugeordnet sind. Beispiel:sudo arp-scan 192.168.2.0/24
Zeigt 2 Ergebnisse (.1 und .1) an, währendnmap -sn 192.168.2.0/24
4 Ergebnisse (.1, .2, .3 und .4) angezeigt werden. Das scheint alsonmap
genauer zu sein (ich weiß mit Sicherheit, dass 4 Geräte an das Netzwerk angeschlossen sind). Warum ist das?nmap
.arp-scan
ist nett !Hinweis für den Leser : Die ursprüngliche Antwort wurde vor einiger Zeit und zu der Zeit, als ich nur Shell-Scripting lernte, veröffentlicht. In der überarbeiteten Version unten finden Sie ein neues und verbessertes Skript, das viel schneller ausgeführt wird.
Ursprüngliche Antwort
nmap
wäre meine erste Wahl, aber was ist, wenn Sie es nicht haben? Der DIY-Weg wäre mit einem Ping-Skript, das jede mögliche IP-Adresse im Netzwerk manuell durchläuft. Was wir hier haben, ist nur eine while-Schleife, in der wir die letzte Nummer in der Adresse setzen, einen stillen einzelnen Ping an die Adresse senden, prüfen, ob der Befehl erfolgreich war oder nicht (und wenn er erfolgreich war, dann ist der Host offensichtlich aktiv) und eineprintf
Anweisung. Schnell und schmutzig, brauchte ungefähr 10 Minuten, um es zu schreiben, aber die Laufzeit ist möglicherweise etwas langsam.Überarbeitete Antwort
Ich habe diese Antwort ursprünglich im August 2015 gepostet. Seitdem habe ich etwas mehr über Shell-Skripte gelernt. Als ich dieses Skript sah, hielt ich es für eine gute Idee, diese Antwort zu überarbeiten, um ein paar Verbesserungen hinzuzufügen. Hier sind ein paar Ideen:
Das Skript ist offensichtlich langsam und
ping
wartet auf die Antwort des Hosts. In der Standardeinstellungping
für zwei RTT, die auf variieren je nachdem , wie überlastet ist Ihr Netzwerk, und so weit ich das TCP - Protokoll verstehen verdoppelt sich die Wartezeit jedes Mal (zumindest nach dieser ). Also könnten wirping
mit-w 1
flag eine Auszeit erzwingen . Da wir 256 Adressen haben und für jede Adresse 1 Sekunde annehmen, dauert das Skript ungefähr 256/60 = 4,27 Minuten.Einen Befehl auszuführen und dann seinen Exit-Status mit zu erfassen,
$?
war nicht wirklich notwendig. Sieif ... then;...fi
können Befehle direkt bearbeiten. Mit anderen Worten, es reicht aus, dies zu tun:Der
printf
Befehl kann folgendermaßen umgeschrieben werden:Dies ist eher eine stilistische Änderung, stimmt jedoch mit der Funktionsweise
printf
und dem Erscheinungsbild vieler anderer Sprachen überein , wobei"$NUM"
Variablen zitiert werden. Das Zitieren hier ist nicht erforderlich - da es sich nur um Zahlen handelt, müssen wir nicht mit dem Aufteilen von Wörtern rechnen, da Leerzeichen in einer Variablen vorhanden sind.Eine viel bessere Leistungsverbesserung kann erreicht werden, wenn wir mehrere Hintergrundprozesse erzeugen. Die folgende Skriptbearbeitung erledigt genau das. Ich setze das
ping
undprintf
in eine Funktionpingf
(ja, kitschiger Name, ich weiß). Jetzt gibt es auch eine einzigemain
Funktion, die das Schleifen und Aufrufen von erledigtpingf
.Wie viel besser funktioniert das? Eigentlich nicht schlecht, dauert nur ein paar Sekunden.
Dinge zu beachten
quelle
Netdiscover kann Ihre Antwort sein.
Installation über Terminal:
Beispielverwendung:
Auf Ihrem Terminal wird eine IP mit MAC-Adressen angezeigt. Siehe den Screenshot
hoffe, dir zu helfen
Referenz
quelle
*** buffer overflow detected ***: netdiscover terminated
.fping
ist ein großartiges Tool zum Scannen mehrerer Hosts in einem Netzwerk über ICMP. Wenn es nicht installiert ist, können Sie es folgendermaßen installieren:fping
sendet ICMP-ECHO_REQUEST-Pakete und markiert einen Host als Up, wenn er ECHO_RESPONSE vom Host erhält.Um beispielsweise die Hosts des Subnetzes zu scannen
192.168.1.0/24
, haben Sie folgende Möglichkeiten:Für eine bestimmte Anzahl von Hosts, zB von
192.168.1.15
bis192.168.1.140
:fping
ist sehr konfigurierbar, zB wie viele Pakete gesendet werden, wie lange auf eine Antwort gewartet werden soll, Ausgabeformat usw.Überprüfen Sie
man fping
, um weitere Informationen zu erhalten.quelle