Alle Geräte - IP Adressen im Netzwerk anzeigen

Wer einen schnellen Überblick über alle aktiven Geräte in einem Netzwerk bekommen will, kann dies mit der Netzwerkerkennung, mit Befehlen in der Eingabeaufforderung, in PowerShell oder mit speziellen IP-Scannern.   

All jene die keine Lust zu Lesen haben und einfach nur alle lokalen C-Netzwerk-Adressen anzeigen wollen, können die folgenden Erklärungen überspringen und direkt zu den PowerShell-Befehlen wechseln: PowerShell Befehle Klasse C: ping und arp.

Windows Explorer

Die einfachste Variante um Geräte im Netzwerk anzuzeigen, ist die Windows Explorer Option: "Netzwerkerkennung und Dateifreigabe aktivieren". Windows 10 listet damit Geräte im lokalen Netzwerk auf:

Die Option kann übrigens in der Systemsteuerung wieder deaktiviert werden: 

Systemsteuerung\Alle Systemsteuerungselemente\Netzwerk- und Freigabecenter\Erweiterte Freigabeeinstellungen 

Die Ausgabe der Netzwerkerkennung ist nicht vollständig, da Windows Rechner mit deaktivierter Netzwerkerkennung für andere nicht sichtbar sind.

Wer die Netzwerkabfrage selbst in die Hand nehmen will, kann dies mit den folgenden Beispielen:

in der Eingabeaufforderung

Die Verbindung zu einem einzelnen Rechner im Netzwerk kann bekanntlich mit dem "ping" Befehl überprüft werden:

ping ZIELADRESSE, siehe auch:   cmd Befehle Netzwerk (IP) - Beispiele Windows 

Dabei spielt es keine Rolle, ob sich das Gerät im lokalen LAN oder in einem anderen Subnet befindet, also über das Gateway (Router) erreichbar ist. Moderne Betriebssysteme, wie z.B. Windows 10 blockieren die Antwort auf einen Ping-Befehl: ICMP wird von der Windows Firewall geblockt. Wer also bestimmte Ports für den Ping-Vorgang verwenden will, kann dies mit dem Command-Line Tool psping, siehe ping auf bestimmten Port. Leider muss die Windows Firewall dazu für den verwendeten Port geöffnet sein, eine einfache Lösung für das lokale LAN weiter unten auf dieser Seite: auslesen mittels ARP Cache, bzw. gleich zu den fertigen Befehlen: PowerShell Befehle Klasse C: ping und arp 

das komplette Netz in einer Zeile pingen

Der Ping-Befehl kann auch mehrfach in einer Schleife ausgeführt werden:

for /l %i in (1,1,255) DO @ping 192.168.0.%i -n 1 | find "Bytes="

for /l %i in (1,1,255) bedeutet: beginnend von 1 in 1er Schritten bis 255 

@ping 192.168.0.%i -n 1 .. ist der eigentliche ping Befehl (das @ unterdrückt die Ausgabe des Befehles) und mittels

| find "Bytes=" werden nur Zeilen die "Bytes=" enthalten, die also auf den Ping antworten, angezeigt. 

Scan mit aktivierter Firewall im lokalen LAN

Wenn auf den Endgeräten die Firewall aktiviert ist, antworten diese nicht mehr auf einen "ping", als Beispiel ist das bei Windows 10 der Fall. Rechner die sich im selben IP Netz: z.B. 192.168.0.x (Subnet) befinden, kommunizieren direkt miteinander, benötigen also kein Gateway (Router) dafür. Für die direkte Kommunikation wird auf den Geräten ein "ARP Cache" befüllt, dieser kann mittels arp -a in der Eingabeaufforderung angezeigt werden. Der ARP Cache listet alle IP und MAC Adressen des lokalen Netzes mit denen der Computer eine Verbindung hatte. 

Da der ARP Cache für jeden Eintrag ein Timeout besitzt, werden nur neue Verbindungen angezeigt. Zusätzlich kann der Cache mit arp -d gelöscht werden. 

Wird ein Windows 10 Rechner mit aktivierter Firewall angepingt, liefert dieser keine Antwort, der Rechner befindet sich dann aber im ARP Cache:

Damit also alle Geräte angezeigt werden, muss ein "ping" auf alle Geräte ausgeführt werden.

Die folgende Zeile in der Eingabeaufforderung startet einen ping auf alle Adressen des kompletten Subnet, wartet 10 Sekunden und zeigt den ARP Cache an.

Folgende Befehlszeile listet auch Rechner des lokalen LAN, bei denen die Firewall eingeschaltet ist

(for /l %i in (1,1,255) DO start /min ping 192.168.0.%i -n 1) && timeout 10 && arp -a

Wenn sich der Rechner in einem anderen Subnet befindet, kann die Befehlszeile natürlich entsprechend angepasst werden: 

... in (1,1,255).. ping 192.168.0.%i .... 

Legende:

Start- und Endwert for /l %i in (1,1,255) bedeutet: beginnend von 1 in 1er Schritte bis 255 

Subnet also alles vor der Variable (1-255)

Etwas Vorsicht ist dabei geboten, da start /min alle 255 Pings gleichzeitig startet: Um das Netzwerk nicht zu überlasten, sollte der Start- und Endwert also nicht all zu groß gewählt werden. Alternativ zur Eingabeaufforderung kann auch die Windows PowerShell verwendet werden:

PowerShell

Etwas mehr Möglichkeiten bietet die Windows PowerShell. In PowerShell kann der ARP-Cache mit Hilfe des Befehles Get-NetNeighbor angezeigt werden:

Get-NetNeighbor | Where-Object -Property state -ne Unreachable | where-object -property state -ne Permanent | Out-GridView

In Kombination mit Out-GridView werden die Ergebnisse in einem Fenster ausgegeben, in dem diese durchsucht oder gefiltert werden können:

Get-NetNeighbor verhält sich gleich dem arp-Befehl: d.h. es werden nur Geräte des gleichen Subnet gelistet mit denen der Computer eine aktive Verbindung hat oder hatte. Die Liste liefert, wie auch schon in der Eingabeaufforderung, ein besseres Ergebnis, wenn alle Adressen des Subnet vorher mit einem "ping" angesprochen werden:

Folgende PowerShell-Befehle listen alle IP-Adressen des lokalen Netzwerkes, auch wenn deren Firewall eingeschaltet ist:

Folgende Befehle suchen nach allen vorhandenen Klasse C-Netzen, starten einen ping auf alle Adressen (1..254) und stellen das Ergebnis als Out-Gridview dar:

#Foreach alle Klasse C:-Netze (/24)
$(Get-NetIPAddress | where-object {$_.PrefixLength -eq "24"}).IPAddress | Where-Object {$_ -like "*.*"} | % { 
    $netip="$($([IPAddress]$_).GetAddressBytes()[0]).$($([IPAddress]$_).GetAddressBytes()[1]).$($([IPAddress]$_).GetAddressBytes()[2])"
    write-host "`n`nping C-Subnet $netip.1-254 ...`n"
    1..254 | % { 
        (New-Object System.Net.NetworkInformation.Ping).SendPingAsync("$netip.$_","5") | Out-Null
    }
}
#warte bis arp-cache: complete
while ($(Get-NetNeighbor).state -eq "incomplete") {write-host "waiting";timeout 1 | out-null}
#Ergebnis anzeigen
Get-NetNeighbor | Where-Object -Property state -ne Unreachable | where-object -property state -ne Permanent | Out-GridView

Der Befehls-Block kann einfach in die Windows-PowerShell-Konsole kopiert werden, diesen dazu in die Zwischenablage kopieren (Strg+c):
Ein "Rechtsklick" in der PowerShell fügt den Inhalt darin ein und startet die Befehle, die letzte Zeile muss dann noch mit "Enter" bestätigt werden:

Auch hier wird der ARP-Cache über Get-NetNeighbor in einem Fenster (Out-Grid-View) dargestellt. Das Skript erkennt automatisch alle Klasse-C-Netzwerke (/24 oder Subnet-Mask 255.255.255.0) und startet einen ping auf deren Adressen: 1-254. Dank "System.Net.NetworkInformation.Ping"  und "SendPingAsync" läuft der Ping gleichzeitig auf alle Geräte und das Skript liefert entsprechend schnell eine Antwort. Um ein anderes Netz als /24 zu pingen muss "PrefixLength", die Start- und End-Werte: "1..254" und eventuell das Befüllen der Variable "$netip" entsprechend angepasst werden. Sollte die Variante mit PowerShell aus irgendeinem Grund nicht funktionieren, kann auch die bereits beschriebene Zeile in der Eingabeaufforderung verwendet werden: Eingabeaufforderung-ping-arp.

Die PowerShell-Variante erkennt die lokalen Netze selbstständig und ist wesentlich schneller als die beschriebene Variante in der Eingabeaufforderung. Ursprünglich habe ich den Ping mit Test-Connection und Start-Job getestet, der Overhead seitens PowerShell ist damit sehr hoch. PowerShell verbraucht mit Start-Job und Test-Connection relative viel CPU und RAM und benötigt ca. 2 Minuten um das Subnet asynchron zu pingen, "System.Net.NetworkInformation.Ping" und "SendPingAsync" hingegen wenige Sekunden.

Hostname

Die Liste enthält keine Host-Namen, diese können mit dem Befehl "Resolve-DNSName" herausgefunden werden:

PS C:\WINDOWS\system32> (Resolve-DnsName 192.168.1.191).NameHost
LGTV.lan

in VBScript

Zudem ist es auch möglich die Adressen aus VBScript anzupingen:

Hier ein einfaches Skript für ein Klasse C, Netzwerk. Das Skript verwendet den oben beschriebenen ping-Befehl.

siehe: Vbscript um mehrere IP Adressen bzw ein Subnet zu pingen

Tools

Spezielle Tools liefern noch mehr Möglichkeiten und einen bessern Überblick als die Windows Boardmittel. Abhängig von der Arbeitsweise der Scanner liefern diese aber ähnliche Ergebnisse:

Advanced IP Scanner 

Sehr einfacher und schneller IP Scanner. Der Advanced IP Scanner zeigt Namen, IP, Hersteller und MAC-Adresse aller Geräte im lokalen Netzwerk. Bei meinen Tests konnte der Advanced IP Scanner auch Windows 10 Rechner des lokalen Subnet mit aktivierter Firewall erkennen. 

Der Scanner liefert ähnliche Ergebnisse wie unsere ARP-Abfrage, zusätzlich aber noch den Hostnamen und anhand der MAC-Adresse den Hersteller. Weitere Infos zur MAC-Adresse und zum Hersteller findest du hier:  MAC-Adresse des PCs herausfinden - anzeigen 

Download / Version, siehe: Advanced IP Scanner

Angry IP Scanner

Ein auf Java basierter, einfacher IP Scanner:

Für Hosts, die nicht auf ICMP, also auf einen Ping antworten:

Für Windows 10 mit aktivierter Firewall kommt allerdings keine Antwort zurück, immerhin wird aber der Hostname angezeigt:

Zusätzlich können bestimmte Ports für den Scan angegeben werden:

Windows 10 reagiert aber erst mit deaktivierter Firewall auf den IP-Scanner:

 

aktuelle Version, siehe: Angry IP Scanner

Fazit

Die hier vorgestellten Befehle machen die Installation eines IP Scanners für einen schnellen Überblick überflüssig. Eine einzige Befehlszeile in der Eingabeaufforderung oder eine Handvoll  PowerShell-Befehle reichen, um alle Rechner im lokalen Netzwerk oder in einem anderen Subnet aufzulisten. Mehr Komfort und eventuell mehr Details liefern dennoch spezielle Programme.

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


veröffentlicht am 08.11.2015 von Bernhard
geändert am 18.11.2020 von Bernhard



Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍anonym
erstellt am 13.11.2018 10:11
User: derhacker 
gehtnich bekommen meldung i kann syntaktisch an dieser stelle nicht verwendet werden

✍anonym
erstellt am 15.03.2020 03:03
User: Missyip 
Werden im IP Range auch Geräte angezeigt die nichtmehr aktiv sind? Also Mal angemeldet waren?

✍anonym
erstellt am 26.01.2020 20:01
User: Tom 
sachlich beschrieben und fachlich informativ, was will man mehr.

✍anonym
erstellt am 30.09.2019 14:09
User: CNS 
Kann mir jemand helfen, IP Adresse von einem fake Profil auf Instagram rauszufinden. wenn ja bitte melden aydincansu@hotmail.de. Ich bin auch gerne bereit was zu zahlne. 
Danke

✍anonym
erstellt am 16.08.2019 15:08
User: KMG 
Super einfach und praktisch!

✍anonym
erstellt am 06.08.2019 21:08
User: Para 
Ich suche vergebens nach einem CMD Befehl für die folgende Anwendung:
Ich kenne den DNS Namen von einem anderen PC im eigenen LAN Netzwerk. 
Über die Eingabe des CMD Befehls mit DNS Namen will ich die IP Adresse des PCs angezeigt bekommen.
Ipconfig und andere Befehle zeigen mir nur meinen eigenen PC an
 

✍anonym
erstellt am 16.09.2018 23:09
User: Fröhlicher Majo  
einfach und effektiv => Klasse

✍anonym
erstellt am 02.07.2018 10:07
User: eina 
viel zu kompiliziert

✍anonym
erstellt am 22.06.2017 19:06
User: Konny 
klasse Seite

✍anonym
erstellt am 31.05.2017 08:05
User: ju 
ich dachte es gäbe hier eine Auflistung von Geräten die eine ip adresse haben den dies brauche ich für die schule.
✍anonym
erstellt am 16.07.2020 12:07
Wer braucht nicht die Lehrerzugänge ? ihr könnt euch die IP adressenbefehle von diversen Webseiten rauskopieren

erstellt von anonym

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Mehr Details