Příkaz do CMD pro ping více adres najednou

Úvod do problematiky pingování více adres

Správci sítí a technici se často dostávají do situace, kdy potřebují otestovat dostupnost více zařízení najednou. Standardní příkaz ping v prostředí Windows Command Prompt umí zpracovat pouze jednu IP adresu nebo název hostitele v jednom volání. Pokud chcete prověřit celý rozsah adres, například 192.168.0.1 až 192.168.0.254, nebo několik cílových počítačů zároveň, musíte použít speciální konstrukci. Tento článek se zaměřuje na praktické způsoby, jak pomocí příkazového řádku pingovat více adres současně, a to jak v prostředí Windows, tak i v Linuxu a v PowerShellu. Ukážeme si nejen základní smyčky, ale i pokročilejší metody pro filtrování výstupu a paralelní zpracování.

Základní smyčka FOR v příkazovém řádku Windows

Nejjednodušším způsobem, jak pingovat více adres v CMD, je použití smyčky FOR. Tento příkaz umožňuje iterovat přes číselný rozsah a spustit ping pro každou hodnotu. Typickým scénářem je prozkoumání celé podsítě. Příkaz vypadá takto: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i. Smyčka postupně dosazuje proměnnou %i od 1 do 254 a pro každou adresu provede jeden pingový dotaz. Parametr -n 1 omezuje počet odeslaných paketů na jeden, což celý proces výrazně urychlí.

Příkaz do CMD pro ping více adres najednou - 1

Je důležité si uvědomit, že tato smyčka provádí pingy sekvenčně, tedy jeden za druhým. Při testování rozsahu 254 adres to může trvat desítky sekund, protože každý ping čeká na odpověď nebo timeout. Pro rychlejší orientaci je vhodné výstup filtrovat, aby se zobrazily pouze úspěšné odpovědi. V následující části si ukážeme, jak na to.

Filtrování výsledků pomocí příkazu FIND

Samotná smyčka FOR vygeneruje pro každou adresu několik řádků, včetně informací o timeoutu a ztrátě paketů. Pro praktické použití je mnohem užitečnější získat pouze ty adresy, které odpověděly. Toho dosáhnete přidáním potrubí a filtru FIND. Upravený příkaz vypadá takto: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply". FIND vyhledá řetězec "Reply" (v anglické verzi systému) nebo "Odpověď" (v české verzi). Pokud chcete být univerzální, použijte parametry /i pro ignorování velikosti písmen.

Příkaz do CMD pro ping více adres najednou - 2

Výsledek můžete ještě přesměrovat do textového souboru pro pozdější analýzu. Například takto: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply" >> ping_vysledky.txt. Tento soubor pak obsahuje jen řádky s úspěšným pingem. Tuto metodu oceníte zejména při pravidelném monitorování menších sítí. Níže uvádíme tabulku s přehledem užitečných parametrů ping příkazu a jejich významu.

Parametr Popis Příklad použití
-n Počet odeslaných paketů ping -n 2 adresa
-w Timeout v milisekundách pro každou odpověď ping -w 5000 adresa
-4 Vynutí použití IPv4 ping -4 adresa
-a Zjištění názvu hostitele z IP adresy ping -a adresa

Tabulka zobrazuje základní přepínače, které můžete kombinovat se smyčkou FOR. Například parametr -w 5000 prodlouží čekání na odpověď na pět sekund, což je užitečné u pomalých spojení. Filtrování pomocí FIND výrazně zjednoduší práci s výstupem a ušetří čas při hledání aktivních zařízení.

Příkaz do CMD pro ping více adres najednou - 3

Alternativa pro Linux a Unix – nástroj fping

V operačních systémech Linux a Unix sice můžete použít podobnou smyčku v shellu, ale pro efektivnější práci s více adresami existuje specializovaný nástroj fping. Tento program umožňuje odesílat pingy na více cílů současně (paralelně), což výrazně zrychluje celý proces. Instalace je obvykle jednoduchá – na Debianu/Ubuntu pomocí sudo apt install fping, na Red Hat/CentOS pomocí yum install fping. Poté můžete pingovat celý rozsah jedním příkazem: fping -g 192.168.0.1/24. Příznak -g znamená generování rozsahu z CIDR notace.

Další možností je vyjmenovat cíle přímo za příkazem: fping host1 host2 host3. fping vypisuje pouze odpovědi a časy, což je přehlednější. Pokud chcete testovat dostupnost velkého množství serverů, je fping ideální volbou. Pro srovnání: zatímco smyčka FOR v CMD provádí pingy sekvenčně, fping je odesílá paralelně a čeká na všechny odpovědi, takže celý test trvá jen pár sekund. Více informací o fingu najdete na blogu Wel. R. Bragy, kde je nástroj podrobně popsán: odkaz na blog o fping.

Příkaz do CMD pro ping více adres najednou - 4

Použití PowerShellu pro paralelní ping

Pro uživatele Windows, kteří chtějí využít pokročilejší možnosti, je skvělou alternativou PowerShell. Ten nabízí několik způsobů, jak pingovat více adres současně. Nejjednodušší je použití smyčky ForEach-Object s parametrem -Parallel, který je dostupný od PowerShellu 7. Například: 1..254 | ForEach-Object -Parallel { ping -n 1 192.168.0.$_ } -ThrottleLimit 50. Tento příkaz spustí až 50 pingů paralelně, čímž se test celého rozsahu zkrátí na několik sekund.

Pro kontinuální pingování více IP adres (například pro dlouhodobé sledování) lze využít Start-Job. Každý job běží na pozadí a ukládá výsledky do souboru. Příklad: $ips = "192.168.0.1","192.168.0.2","192.168.0.3"; foreach ($ip in $ips) { Start-Job -ScriptBlock { param($ip) while($true) { ping -n 1 $ip | Out-File -Append C:\logy\$ip.txt; Start-Sleep -Seconds 5 } } -ArgumentList $ip }. Tento skript spustí pro každou IP adresu samostatný job, který pinguje každých pět sekund a zapisuje výstup do samostatného souboru. Je to robustní řešení pro monitoring menších sítí. Podrobnější diskuzi o této metodě naleznete na Redditu v PowerShell komunitě: odkaz na diskuzi o kontinuálním pingu.

Příkaz do CMD pro ping více adres najednou - 5

Praktické tipy a rady pro efektivní testování

Při práci s více pingy je dobré dodržovat několik zásad, které vám usnadní život a zpřesní výsledky. V následujícím seznamu najdete užitečné body:

  • Omezte počet paketů pomocí -n 1 nebo -c 1 (v Linuxu), abyste minimalizovali dobu testování. V případě sekvenční smyčky to ušetří minuty.
  • Používejte timeout přiměřený vaší síti. Pro místní síť stačí 500 ms, pro pomalejší spoje zvyšte na 2000 ms.
  • Výstup vždy ukládejte do souboru, abyste mohli provést zpětnou analýzu. Přesměrování operátorem >> je jednoduché a spolehlivé.
  • Pro testování z textového seznamu IP adres použijte smyčku FOR /F, která čte soubor řádek po řádku: FOR /F %i IN (adresy.txt) DO ping -n 1 %i | FIND /i "Reply".

Tyto tipy vám pomohou přizpůsobit příkaz konkrétní situaci. Pamatujte, že nativní ping v CMD nepodporuje paralelní zpracování, proto je pro rozsáhlé testy vhodnější sáhnout po PowerShellu nebo fingu. Kombinací smyček a filtrování však dosáhnete slušných výsledků i v základním prostředí.

Závěr

Pingování více adres najednou je běžnou potřebou každého správce sítě. V článku jsme si ukázali, že v prostředí Windows Command Prompt lze použít smyčku FOR s filtrací pomocí FIND, což je sice sekvenční, ale funkční řešení. Pro rychlejší práci doporučujeme PowerShell s paralelními joby nebo nástroj fping v Linuxu. Každá metoda má své výhody a je vhodná pro jiný typ úkolu – od rychlé kontroly rozsahu po dlouhodobý monitoring. Doufáme, že uvedené příklady a tabulka s parametry vám pomohou zefektivnit vaši práci.

Reference

Microsoft Learn – dokumentace k příkazu ping pro Windows Server: https://learn.microsoft.com/pt-br/windows-server/administration/windows-commands/ping

SuperUser – diskuse o pingování rozsahu IP adres v CMD: https://qastack.com.br/superuser/45687/how-can-i-ping-a-range-of-ip-addresses-simultaneously-closed

Blog Wel. R. Bragy – článek o nástroji fping: https://blog.welrbraga.eti.br/fping-um-ping-para-multiplos-hosts/

Reddit PowerShell komunita – návod na kontinuální ping pomocí jobů: https://www.reddit.com/r/PowerShell/comments

CMD ping síť Windows příkazový řádek diagnostika sítě IP adresa
Upozornění Informace slouží pouze pro základní diagnostiku sítě.
Autor

Stefano Barcellos

Přispěvatel na Visite Barbados.

« Předchozí příspěvek
Jak psát emoji na PC: jednoduchý návod

Související příspěvky