Pingen Sie alle IPs im LAN

Wie würde ich alle Geräte in meinem LAN herausfinden, indem ich sie alle im Terminal anpinge? Was wäre der Code?

Siehe meine Antwort auf diese Frage, insbesondere Nr. 3 und Nr. 4: apple.stackexchange.com/questions/19783/…

Antworten (3)

Der wahrscheinlich einfachste Weg, dies zu tun, ist die Verwendung eines Befehlszeilenprogramms namens nmap. Sie können die Binärdateien von der Hauptseite herunterladen . Wenn Sie Homebrew installiert haben, können Sie dies alternativ verwenden, um nmap von einem Terminal aus zu installieren, indem Sie Folgendes eingebenbrew install nmap

Nachdem Sie nmap heruntergeladen und installiert haben, benötigen Sie eine weitere Information über Ihr LAN – welche IP-Adressblöcke werden für Maschinen darauf verwendet. Der einfachste Weg, das herauszufinden, ist, ifconfig -a inetvon einem Terminal aus zu laufen. Wenn Sie das eingeben, sollte entweder Ihre en0- oder en1 -Netzwerkschnittstelle einen inet - Eintrag haben (ignorieren Sie die inet-Adresse für lo0 ). Es ist die IP-Adresse daneben, an der Sie interessiert sind. Hier ist eine Beispielausgabe von meinem Computer:

$ ifconfig -a inet
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.0.6 netmask 0xffffff00 broadcast 192.168.0.255
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078

In meinem Netzwerk hat mein Rechner die Adresse 192.168.0.6 auf der Schnittstelle en1 .

HINWEIS : Je nachdem, wie viele Computer Sie in Ihrem Netzwerk haben, kann es sehr lange dauern, sie alle zu pingen. In den folgenden Beispielen gehe ich davon aus, dass Sie weniger als 256 Geräte in Ihrem Netzwerk haben und dass sie sich alle im selben Subnetz befinden – wahrscheinlich der Fall, wenn es sich um ein Heimnetzwerk handelt.

Wenn Ihr Inet wie 192.168. NN (wobei jedes N eine Zahl zwischen 0-255 ist), dann versucht der folgende Befehl, die Adressen 192.168.1.1 zu pingen. N .0 bis 192.168. N .255 in Ihrem Netzwerk und melden Sie alle Maschinen, die antworten (Sie müssen sudo verwenden, damit nmap ICMP-Pings verwenden kann). Füllen Sie die N - Abschnitte mit der passenden Nummer in Ihrer Inet -Adresse aus:

sudo nmap -sn -PE 192.168.N.0/24

Wenn Ihre Inet -Adresse beispielsweise als 192.168.1.100 gemeldet wurde, sollten Sie Folgendes eingeben:sudo nmap -sn -PE 192.168.1.0/24

Wenn Ihre Inet -Adresse wie 10. NNN aussieht , verwenden Sie dies und füllen Sie die N - Abschnitte erneut mit Ihren eigenen gemeldeten Nummern aus:

sudo nmap -sn -PE 10.N.N.0/24

Und schließlich, wenn es wie 172. NNN aussieht , verwenden Sie Folgendes:

sudo nmap -sn -PE 172.N.N.0/24

Größere Netzwerke durchsuchen

Wenn Sie Ihre Suche auf weitere Maschinen ausdehnen möchten, müssen Sie die Zahl hinter dem Schrägstrich im Adressteil des Befehls anpassen. In den drei obigen Befehlen habe ich angegeben /24. Das bedeutet, dass nmap die ersten 24 Bit der von Ihnen angegebenen IP-Adresse verwendet und automatisch die anderen Zahlen generiert (im ersten Beispiel verwendet nmap 192.168. N als exakten Teil, da jede Gruppe 8 Bit umfasst). Um also mehr Adressen zu suchen, verringern Sie die Zahl nach dem Schrägstrich. /24sucht 256 Adresse, /23sucht 512 Adresse, /22sucht 1024.

Jedes Mal, wenn Sie die Zahl um 1 verringern, werden doppelt so viele Adressen durchsucht - daher kann eine zu starke Verringerung die Suche sehr, sehr lange dauern. Um beispielsweise alle 192.168. NN -Adressen würden Sie angeben 192.168.0.0/16- aber das müssten 65536 Rechner anpingen. Bei 0,25 Pings pro Sekunde würde das 4 Stunden dauern ...

Ich weiß nicht, wie viele Pings pro Sekunde nmap senden kann, aber wenn Sie einen vollständigen Scan versuchen, müssen Sie ihn möglicherweise über Nacht stehen lassen oder zumindest einen langen Kaffee trinken.

Diese nmap-Optionen

Nur damit Sie es wissen, hier ist, was die anderen von mir angegebenen nmap-Optionen bedeuten:

-sn (No port scan)

-PE (ICMP ping echo)

Wie die Option "kein Port-Scan" andeuten mag, können Sie mit nmap alle möglichen sehr verrückten Dinge tun, wie zum Beispiel zu überprüfen, welche Ports auf einer Maschine geöffnet sind (um festzustellen, welche Dienste sie wahrscheinlich ausführen) und es kann sogar Erraten Sie, welches Betriebssystem auf dem Zielcomputer mit einem ziemlich anständigen Grad an Genauigkeit ausgeführt wird. Wenn Sie fortgeschrittenere Dinge wie diese benötigen, lesen Sie die nmap-Dokumentation. Ich würde sie verlinken, aber ich bin noch nicht bekannt genug, um mehr als 2 Links zu posten.

Oder pingen Sie die Broadcast-Adresse an

ping -c 3 192.168.1.255 | grep 'bytes from' | awk '{ print $4 }' | sort | uniq
oder, kürzer,ping -c 3 192.168.1.255 | awk '/bytes from/{ print $4 }' | sort | uniq

Wenn alles eingeschaltet, reaktionsfähig und in einem Subnetz ist, dann sollte etwas wie „ping 192.168.1“ für ein paar Sekunden gefolgt von „arp -a“ Ihnen eine Liste aller Geräte mit IP-Adresse und MAC-Adresse geben.