CMD-Befehl: Mehrere Hosts gleichzeitig anpingen

Einleitung: Die Herausforderung des Massen-Pings

Das gleichzeitige Anpingen mehrerer Hosts ist eine häufige Anforderung in der Netzwerkadministration. Ob Sie die Erreichbarkeit eines gesamten Subnetzes prüfen, Server in einer Liste überwachen oder einfach nur die Latenz zu mehreren Geräten messen möchten – der Windows Command Prompt bietet dafür mehrere Ansätze. Die native ping.exe kennt zwar keine Option, um mehrere Ziele in einem Befehl zu verarbeiten, aber mit Schleifen, Filtern und speziellen Tools lassen sich effiziente Workflows aufbauen. Dieser Artikel erklärt die gängigsten Methoden, von der einfachen FOR-Schleife bis hin zu parallelen Jobs in PowerShell, und zeigt, wie Sie die Ergebnisse übersichtlich auswerten. Besonders nützlich ist das Vorgehen, wenn Sie schnell feststellen müssen, ob eine IP-Range reagiert, ohne für jede Adresse einen eigenen Befehl tippen zu müssen.

Die Grundidee besteht darin, einen Bereich von IP-Adressen automatisch zu durchlaufen und für jede einen Ping auszuführen. Die Herausforderung liegt darin, dass der sequenzielle Ablauf bei 254 Adressen einige Zeit in Anspruch nimmt. Für zeitkritische Messungen sind daher Parallelverfahren besser geeignet. Der folgende Abschnitt stellt die klassische Windows-Methode vor, die auf der FOR-Schleife basiert und mit Bordmitteln arbeitet.

CMD-Befehl: Mehrere Hosts gleichzeitig anpingen - 1

Methode 1: Die klassische FOR-Schleife in der Eingabeaufforderung

Die einfachste Möglichkeit, mehrere IPs in der Windows-Eingabeaufforderung zu pingen, ist die Verwendung einer FOR-Schleife. Der Befehl lautet: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i. Dieser Befehl durchläuft die Werte von 1 bis 254 in Einerschritten und führt für jede Nummer einen einzelnen Ping an die Adresse 192.168.0.x aus. Der Parameter -n 1 begrenzt die Anzahl der Ping-Wiederholungen auf eins, was den Vorgang beschleunigt. Anstelle des festen Bereichs können Sie auch eine Liste mit Hostnamen in einer Textdatei verwenden und mit FOR /F einlesen.Microsoft Learn dokumentiert die Syntax des Ping-Befehls ausführlich und gibt Hinweise zu weiteren Optionen wie Timeout oder Größe des Pakets.

Nach dem Ausführen der Schleife sehen Sie auf dem Bildschirm eine Flut von Ausgaben – sowohl erfolgreiche Antworten als auch Zeitüberschreitungen. Um den Überblick zu behalten, ist es sinnvoll, die Ausgabe in eine Datei umzuleiten. Dazu hängen Sie einfach > ausgabe.txt an den Befehl an. Allerdings werden dann alle Meldungen gespeichert, auch diejenigen, die Fehler anzeigen. Für eine bessere Lesbarkeit sollten Sie die Ergebnisse filtern, wie im nächsten Abschnitt beschrieben.

CMD-Befehl: Mehrere Hosts gleichzeitig anpingen - 2

Beachten Sie, dass die FOR-Schleife in der Eingabeaufforderung (cmd.exe) verwendet werden muss. In Batch-Dateien müssen Sie das Prozentzeichen verdoppeln (%%i statt %i). Die Methode ist einfach und benötigt keine zusätzliche Software. Der Nachteil ist der sequenzielle Ablauf: Bei 254 Adressen mit je einer Sekunde Timeout dauert der gesamte Durchlauf mehrere Minuten. Für ein schnelles Tuning können Sie den Timeout mit -w verkürzen, zum Beispiel ping -n 1 -w 500 192.168.0.%i für eine halbe Sekunde Wartezeit. Dadurch wird die Gesamtzeit deutlich reduziert, aber die Gefahr von Fehlalarmen durch ausbleibende Antworten steigt.

Methode 2: Ergebnisse mit dem FIND-Befehl filtern

Die reine FOR-Schleife liefert eine unüberschaubare Menge an Text. Abhilfe schafft die Kombination mit dem FIND-Befehl. Indem Sie die Ausgabe jedes Ping-Befehls durch eine Pipe an FIND weiterleiten, können Sie gezielt nach dem Wort Reply suchen. Der Befehl lautet dann: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i Reply. Das /i sorgt dafür, dass die Groß-/Kleinschreibung ignoriert wird. So erhalten Sie nur die Zeilen mit erfolgreichen Antworten – alle Timeout-Meldungen werden unterdrückt.Ein Diskussionsbeitrag auf SuperUser zeigt, wie diese Technik in der Praxis angewendet wird und gibt weitere Tipps zur Fehlerbehandlung.

CMD-Befehl: Mehrere Hosts gleichzeitig anpingen - 3

Möchten Sie zusätzlich die nicht erreichbaren Hosts erfassen, können Sie zwei Filter verwenden: Einen für Reply und einen für Destination host unreachable oder Request timed out. Allerdings wird der Befehl dadurch unübersichtlicher. Eine elegante Lösung ist, die gesamte Ausgabe in eine Datei zu schreiben und später mit einem Texteditor zu durchsuchen. Noch komfortabler ist es, die Adressen von vornherein in einer Liste zu speichern und die Schleife mit FOR /F zu füttern: FOR /F %i IN (hosts.txt) DO ping -n 1 %i. So können Sie beliebige Hostnamen oder IPs abarbeiten, ohne den Bereich festlegen zu müssen.

Die Filterung mit FIND ist sehr effizient, da sie innerhalb der Pipe arbeitet und nur relevante Zeilen ausgibt. Allerdings ist sie nicht fehlerfrei: Bei Sprachen mit anderen Ausgaben (zum Beispiel Antwort von statt Reply) müssen Sie den Suchbegriff anpassen. In deutschen Windows-Versionen lautet die Erfolgsmeldung Antwort von. Sie können dann FIND /i Antwort verwenden. Für maximale Kompatibilität empfiehlt es sich, die englische Ausgabe zu erzwingen oder einen generischen Filter wie FIND /i TTL zu verwenden, da die TTL-Angabe in allen Sprachversionen enthalten ist.

CMD-Befehl: Mehrere Hosts gleichzeitig anpingen - 4

Vergleich der verschiedenen Ansätze

Die folgende Tabelle stellt die wichtigsten Methoden zum gleichzeitigen oder sequenziellen Pingen mehrerer Hosts gegenüber. Sie zeigt die Plattform, die Geschwindigkeit und die Einfachheit der Umsetzung.

MethodePlattformParallelitätGeschwindigkeitKomplexität
FOR-Schleife mit PingWindows CMDSequenziellLangsam (pro Host)Niedrig
FOR-Schleife mit FINDWindows CMDSequenziellLangsam (pro Host)Mittel
fping (Kommandozeile)Linux/UnixParallelSchnellNiedrig
PowerShell-JobsWindows PowerShellParallelSchnellHoch
PowerShell ForEach-Object -ParallelWindows PowerShell 7+ParallelSchnellMittel

Wie die Tabelle zeigt, ist die CMD-Schleife die einfachste, aber auch die langsamste Methode. Wer mehrere hundert IPs schnell prüfen muss, sollte auf parallele Verfahren wie fping oder PowerShell-Jobs ausweichen. Die CMD-Variante eignet sich hervorragend für kleine Bereiche oder als schnelle Ad-hoc-Lösung, wenn keine anderen Tools installiert werden können.

CMD-Befehl: Mehrere Hosts gleichzeitig anpingen - 5

Vor- und Nachteile der CMD-Schleife

Die Verwendung der FOR-Schleife im Windows Command Prompt hat spezifische Stärken und Schwächen. Die folgende Liste fasst die wichtigsten Punkte zusammen:

  • Vorteil: Keine Installation erforderlich – die Funktion ist in jeder Windows-Version enthalten.
  • Vorteil: Einfach zu verstehen und für Einsteiger geeignet.
  • Vorteil: Kann leicht in Batch-Dateien integriert werden.
  • Nachteil: Sequenzieller Ablauf – bei vielen Hosts dauert es sehr lange.
  • Nachteil: Keine echte Parallelität – jeder Ping wartet, bis der vorherige beendet ist.
  • Nachteil: Ausgabe muss manuell gefiltert oder in Dateien umgeleitet werden.
  • Nachteil: Timeout pro Host kann nicht global reduziert werden, ohne Verluste zu riskieren.

Für den schnellen Check von zehn oder zwanzig IPs ist die CMD-Schleife völlig ausreichend. Für ganze Subnetze mit 254 Adressen oder mehr empfiehlt sich der Einsatz von spezialisierten Tools, die mehrere Pings gleichzeitig absetzen können.

Alternative für Linux und Unix: fping

Im Linux- und Unix-Umfeld gibt es das leistungsfähige Tool fping, das von Haus aus mehrere Ziele parallel anpingt. Anders als in Windows können Sie mit einem einzigen Befehl eine ganze IP-Range abdecken: fping -g 192.168.0.1/24 oder fping -g 192.168.0.1 192.168.0.254. Dabei sendet fping die ICMP-Pakete gleichzeitig an alle Hosts und wartet nur auf die Antworten. Die Ausgabe kann mit Optionen wie -a (nur alive) oder -u (nur unreachable) weiter eingeschränkt werden.

fping ist in den Paketquellen der meisten Distributionen enthalten (z. B. apt install fping unter Debian/Ubuntu). Es eignet sich besonders für Skripte und automatisierte Überwachungen. Im Vergleich zur Windows-FOR-Schleife ist es um ein Vielfaches schneller, da die Pings parallel laufen und das Timeout global konfiguriert werden kann. Ein weiterer Pluspunkt ist die Möglichkeit, Hostnamen aus einer Datei einzulesen: fping -f liste.txt. Damit haben Sie eine flexible und performante Lösung für Massen-Pings.

Fortgeschrittene Methode: PowerShell-Jobs

Für Windows-Nutzer, die die Eingabeaufforderung hinter sich lassen möchten, bietet PowerShell eine mächtige Alternative. Mit Start-Job können Sie für jeden Host einen eigenen Ping-Prozess im Hintergrund starten. Die Jobs laufen parallel, sodass die Gesamtzeit nur von der Anzahl der gleichzeitigen Prozesse und dem längsten Ping abhängt. Ein Beispielskript: $hosts = 192.168.0.1..192.168.0.254; $jobs = foreach ($ip in $hosts) {Start-Job -ScriptBlock {ping -n 1 $using:ip}}; $jobs | Wait-Job; $jobs | Receive-Job. Dieses Skript pingt alle 254 Adressen parallel und sammelt die Ergebnisse.

PowerShell 7 und

CMD Ping Windows Netzwerk Batch Diagnose Hosts
Hinweis Die Beispiele dienen nur zur Netzwerkdiagnose und können je nach Windows-Version leicht abweichen.
Autor

Stefano Barcellos

Mitwirkender bei Visite Barbados.

« Vorheriger Beitrag
Gruppenrichtlinie bearbeiten: Anleitung für Windows

Ähnliche Beiträge