Команди CMD для пінгу кількох адрес одночасно

Що таке пінг і навіщо пінгувати кілька адрес

Пінг — це одна з найбільш базових і водночас найкорисніших мережевих утиліт, яка дозволяє перевірити доступність віддаленого хоста за допомогою протоколу ICMP. Користувачі Windows часто використовують команду ping з командного рядка, щоб дізнатися, чи працює сервер, чи є втрати пакетів, або оцінити затримку мережі. Однак стандартний синтаксис команди не передбачає одночасного пінгування кількох адрес. Коли виникає потреба перевірити доступність цілої підмережі або списку серверів, використання циклів і фільтрації результатів стає необхідністю. В цій статті ми розглянемо декілька способів реалізації пінгу багатьох адрес одночасно через командний рядок Windows, а також коротко торкнемося альтернатив для Linux та PowerShell.

Основний метод: цикл FOR в командному рядку

Найпоширеніший спосіб пінгувати діапазон IP-адрес — це використати цикл FOR в CMD. Windows Command Prompt підтримує просту циклічну конструкцію, яка дозволяє виконати команду для кожного значення змінної. Наприклад, якщо потрібно просканувати всі адреси від 192.168.0.1 до 192.168.0.254, можна скористатися наступним синтаксисом: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i. Тут /L означає, що ми використовуємо лічильник, %i — змінна, яка змінюється від 1 до 254 з кроком 1, а команда ping виконується для кожного значення. Зверніть увагу, що в командному рядку використовується один знак відсотка, тоді як у пакетному файлі потрібно подвоювати його: %%i.

Команди CMD для пінгу кількох адрес одночасно - 1

Фільтрація результатів для зручності

Якщо просто запустити цикл FOR з пінгом, екран буде переповнений повідомленнями про тайм-аути. Щоб отримати лише позитивні відповіді, необхідно додати фільтрацію через команду FIND. Наприклад: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply". Цей ланцюжок передає вивід ping через конвеєр до FIND, який шукає рядки, що містять слово "Reply". Саме так виводяться повідомлення про успішне отримання ICMP-відповіді. Результат можна також перенаправити у текстовий файл: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply" >> results.txt. Це дозволяє пізніше проаналізувати лог, не переглядаючи десятки рядків на дисплеї.

Таблиця порівняння команд для пінгу кількох адрес

КомандаОпис
FOR /L %i IN (1,1,254) DO ping 192.168.0.%iПослідовний пінг всіх адрес діапазону
FOR /L %i IN (1,1,254) DO ping 192.168.0.%i | FIND "Reply"Пінг з фільтрацією успішних відповідей
ping 8.8.8.8 & ping 1.1.1.1 & ping 192.168.0.1Пінг декількох окремих адрес послідовно через &
start ping 192.168.0.1 && start ping 192.168.0.2Одночасний пінг через запуск окремих вікон
fping -g 192.168.0.0/24Швидкий паралельний пінг цілої підмережі в Linux

Пінг списку адрес з текстових файлів

Іноді потрібно пінгувати не діапазон, а довільний набір хостів, які зазначені в текстовому файлі. Для цього можна використати конструкцію FOR /F, яка читає вміст файлу. Наприклад, якщо у файлі hosts.txt кожен рядок містить одну IP-адресу, то команда FOR /F %i IN (hosts.txt) DO ping -n 1 %i | FIND "Reply" виконає пінг всіх перелічених вузлів. Цей підхід особливо зручний, коли адреси не утворюють послідовного діапазону, або коли їх список періодично змінюється. Для автоматизації можна помістити таку команду у пакетний файл і використовувати її під час діагностики мережі.

Команди CMD для пінгу кількох адрес одночасно - 2

Паралельне виконання пінгів

Основним недоліком циклу FOR є те, що команди виконуються послідовно. Якщо ви пінгуєте 254 адреси, і кожен запит очікує відповіді приблизно по одній секунді, загальний час сканування становитиме більше чотирьох хвилин. Для прискорення можна скористатися запуском кожного пінгу в окремому вікні за допомогою команди start. Наприклад: FOR /L %i IN (1,1,254) DO start /b ping 192.168.0.%i. Ключ /b запускає команду у фоновому режимі без створення нового вікна. Однак такий спосіб призводить до того, що всі результати зливаються в один потік і стають майже нечитабельними. Тому часто комбінують фоновий запуск із записом результатів у файли: FOR /L %i IN (1,1,254) DO start /b ping 192.168.0.%i > 192.168.0.%i.txt.

Використання PowerShell для одночасного пінгу

PowerShell пропонує значно більше можливостей для паралельної роботи. Замість циклу FOR можна використовувати командлет Start-Job, який запускає кожну команду як окремий завдання. Наприклад, щоб безперервно пінгувати кілька адрес і не втрачати дані, можна створити скрипт, що запускає пінг у фоновому режимі, а результати передає в лог-файл. Зразок такого рішення: Start-Job -ScriptBlock {While($true){"$(Get-Date)..." >> "C:\Logs\Server1.txt"; PING.EXE "8.8.8.8"}}; Start-Job -ScriptBlock {While($true){"$(Get-Date)..." >> "C:\Logs\Server2.txt"; PING.EXE "1.1.1.1"}}. Перевага такого підходу — одночасність і можливість збирати статистику в реальному часі без блокування консолі. Детальніше про цей метод можна прочитати у спільноті PowerShell на Reddit.

Команди CMD для пінгу кількох адрес одночасно - 3

Альтернативи для Linux: fping

Хоча стаття присвячена командному рядку Windows, варто згадати про утиліту fping для Linux, яка спочатку створена для швидкого пінгу багатьох хостів. Від стандартного ping вона відрізняється тим, що може надсилати запити кільком адресам одночасно, а не чекати відповіді на кожен. Наприклад, команда fping -g 192.168.0.1 192.168.0.254 або fping -g 192.168.0.0/24 просканує підмережу за лічені секунди. Ця утиліта також дозволяє вказувати список хостів через файл або передавати їх з конвеєра. Для Windows існують портовані версії, хоча вони не є стандартними. Користувачі, які активно працюють з мережами, часто використовують fping як більш ефективний інструмент порівняно з циклічними конструкціями CMD.

Список корисних команд для мережевої діагностики

Ось перелік основних команд CMD, які можуть знадобитися при роботі з пінгом та діагностикою мережі:

Команди CMD для пінгу кількох адрес одночасно - 4
  • ping -n число адреса — задає кількість відправлених пакетів;
  • ping -t адреса — безперервний пінг до натискання Ctrl+C;
  • ping -w мілісекунди адреса — встановлює тайм-аут очікування відповіді;
  • tracert адреса — трасування маршруту до хоста;
  • ipconfig /all — показує детальну конфігурацію мережевих інтерфейсів;
  • arp -a — перегляд таблиці ARP;
  • netstat -an — список активних з'єднань.

Автоматизація через пакетні файли

Для регулярного використання краще створювати .bat файли, які містять команди пінгу. Наприклад, можна написати сценарій, який перевіряє доступність ключових серверів компанії і записує результат у файл з датою. Приклад: @echo off > результат.txt & FOR %%i IN (192.168.1.1 192.168.1.2 192.168.1.3) DO ping -n 1 %%i | FIND "Reply" >> результат.txt. Потім цей файл можна запускати за розкладом за допомогою Планувальника завдань Windows. Це простий і надійний спосіб моніторингу мережі без стороннього програмного забезпечення.

Обробка помилок та аналіз результатів

При пінгуванні великої кількості адрес можуть виникати ситуації, коли частина хостів не відповідає через налаштування міжмережевого екрану або фільтрації ICMP. Важливо розуміти, що відсутність відповіді не завжди означає, що хост вимкнено — деякі системи просто ігнорують ехо-запити. Для більш точної діагностики рекомендується поєднувати пінг з іншими методами, такими як arp-запити або сканування портів. У випадку, коли потрібно одночасно опитати велику кількість адрес, варто також враховувати навантаження на мережу: 254 пакети майже одночасно можуть створити помітний трафік, особливо в сегменті з низькою пропускною здатністю.

Команди CMD для пінгу кількох адрес одночасно - 5

Висновки та практичні рекомендації

Команди CMD для пінгу кількох адрес одночасно є потужним інструментом у руках системного адміністратора. Базовий цикл FOR дозволяє швидко просканувати діапазон, а додавання фільтрації через FIND робить результат зручним для аналізу. Для прискорення роботи можна використовувати фоновий запуск через start, хоча це створює додаткові труднощі з читанням логів. PowerShell надає більш гнучкі механізми паралельного виконання, а утиліти типу fping значно ефективніші для мереж великого розміру. Вибір конкретного методу залежить від завдань, доступних інструментів і рівня складності, який адміністратор готовий освоїти.

Джерела

Для підготовки статті використовувалися матеріали з офіційної документації Microsoft, зокрема опис команд ping та FOR, доступний на Microsoft Learn. Також були використані практичні поради з форуму SuperUser, де розглядаються методи пінгу через командний рядок. Інформація про використання фонового пінгу та одночасного моніторингу взята з обговорень спільноти PowerShell на Reddit.

CMD ping мережа Windows діагностика адміністрація системи
Увага Інформація подана для довідки та базової діагностики мережі.
Автор

Stefano Barcellos

Учасник на Visite Barbados.

« Попередній допис
Як відкрити кілька файлів одночасно на комп’ютері

Схожі дописи