Команда ping у Windows: перевірка кількох адрес одночасно

Чому стандартний ping не підходить для масових перевірок

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

Метод 1: використання циклу for у командному рядку

Найпростіший спосіб автоматизувати пінг для діапазону IP-адрес у класичному командному рядку Windows – це застосувати цикл for. Синтаксис команди виглядає так: for /L %i in (1,1,254) do ping -n 1 -w 20 192.168.0.%i | find Reply. Цей код змушує систему надсилати один пакет (параметр -n 1) на кожну адресу в діапазоні від 1 до 254 із таймаутом 20 мілісекунд. За допомогою оператора find виводиться лише рядок, який містить слово Reply. Завдяки цьому на екрані з'являються лише ті IP-адреси, які відповіли на запит. Такий підхід простий у реалізації, але має суттєвий недолік: запити виконуються строго послідовно. Для сканування великої підмережі доведеться чекати досить довго. Проте цей метод досі популярний серед адміністраторів завдяки своїй доступності.

Метод 2: перевірка кількох конкретних IP в одній команді

Якщо потрібно перевірити не весь діапазон, а лише кілька окремих адрес, можна скористатися вбудованою можливістю сучасних версій Windows. Команда ping 8.8.8.8 1.1.1.1 8.8.4.4 виконає послідовний запит до кожного з перелічених серверів. Це набагато зручніше, ніж запускати три окремі вікна командного рядка. Результат для кожного хоста виводиться окремим блоком. Ця функція працює починаючи з Windows 10 і є елементарним способом для швидкої перевірки кількох важливих вузлів. Варто зазначити, що виконання все одно залишається послідовним, але завдяки компактності коду час на введення команди скорочується.

Команда ping у Windows: перевірка кількох адрес одночасно - 1

Метод 3: використання PowerShell Test-Connection

Найпотужнішим інструментом для масового пінгу в середовищі Windows є PowerShell. Замість застарілої утиліти ping.exe тут використовується команда Test-Connection. Вона підтримує одночасну перевірку кількох хостів, що є критичним для швидкої діагностики. Приклад команди: Test-Connection -ComputerName 192.168.0.1, 192.168.0.2, 8.8.8.8 -Count 1 -ThrottleLimit 10. Параметр -Count 1 вказує надіслати лише один пакет, а -ThrottleLimit визначає кількість потоків, які будуть виконувати запити паралельно. За замовчуванням ліміт становить 32, що дозволяє дуже швидко опитати цілу підмережу. Результати виводяться у вигляді зручної таблиці, де видно IP-адресу, статус та час відповіді.

Метод 4: фонові завдання PowerShell Start-Job

Для ситуацій, коли потрібен безперервний моніторинг кількох хостів у реальному часі, використовуються фонові завдання Start-Job. Такий підхід дозволяє запустити окремий процес пінгу для кожної адреси, який працюватиме незалежно від основної консолі. Команда виглядає наступним чином: $jobs = "192.168.0.1", "192.168.0.2" | ForEach-Object { Start-Job -ScriptBlock { param($ip) while($true) { ping -n 1 $ip; Start-Sleep -Seconds 2 } } -ArgumentList $_ }. Після запуску ви можете отримувати результати за допомогою Receive-Job. Основним плюсом цього методу є можливість одночасного виконання необмеженої кількості завдань, що особливо важливо для моніторингу великих мереж. Недоліком є складність керування такими завданнями та споживання ресурсів системи.

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

Для зручності вибору оптимального інструменту подаємо таблицю з основними характеристиками описаних методів. Вона допоможе швидко визначити, який спосіб найкраще відповідає конкретній задачі.

Команда ping у Windows: перевірка кількох адрес одночасно - 2

Метод Інструмент Паралельність Складність Постійний моніторинг

Цикл for Cmd Ні Низька Ні

Ping кілька IP Cmd Ні Низька Ні

Команда ping у Windows: перевірка кількох адрес одночасно - 3

Test-Connection PowerShell Так (до 32) Середня Так (з циклом)

Start-Job PowerShell Так Висока Так

Таблиця наочно демонструє, що для простих завдань цілком достатньо класичних методів у Cmd. Для професійної роботи з мережею варто звернути увагу на PowerShell, який надає можливості паралельної обробки та фонових запитів.

Команда ping у Windows: перевірка кількох адрес одночасно - 4

Список сторонніх утиліт для пінгу

Окрім вбудованих засобів Windows, існує багато сторонніх програм, які значно спрощують процес масового пінгу. Вони пропонують зручний графічний інтерфейс та додаткові функції, такі як історія перевірок та звукові сповіщення. Найпопулярнішими з них є:

1. PingInfoView від NirSoft. Це безкоштовна портативна програма, яка дозволяє задати список IP-адрес або імен хостів та спостерігати за їх статусом у реальному часі. Вона не потребує встановлення та підтримує експорт результатів.

2. Angry IP Scanner. Утиліта з відкритим кодом, призначена для швидкого сканування IP-діапазонів. Вона використовує багатопотокову архітектуру, завдяки чому обробляє сотні адрес за лічені секунди.

Команда ping у Windows: перевірка кількох адрес одночасно - 5

3. EMCO Ping Monitor. Безкоштовний інструмент для моніторингу доступності хостів. Він дозволяє налаштувати постійну перевірку з візуальним відображенням статусу кожного пристрою.

4. Free Ping Monitor Tool. Проста у використанні програма, яка може перевіряти одночасно до десяти хостів. Вона ідеально підходить для невеликих офісних мереж.

Висновки

Вибір методу для пінгу кількох адрес одночасно залежить від конкретних потреб адміністратора. Для одноразового сканування невеликої підмережі цілком підійде цикл for у командному рядку. Якщо потрібно швидко перевірити доступність кількох серверів, зручно використовувати вбудовану можливість Windows передавати кілька IP в одній команді ping. Для професійної діагностики та моніторингу найкращим рішенням є інструменти PowerShell, зокрема Test-Connection з параметром -ThrottleLimit. У ситуаціях, де необхідний безперервний контроль великої кількості хостів, варто звернути увагу на фонові завдання або використовувати спеціалізовані програми, такі як PingInfoView. Володіння всіма цими методами дозволяє значно підвищити ефективність роботи мережевого адміністратора та швидко реагувати на проблеми в інфраструктурі.

Джерела

1. SuperUser. Cmd.exe command to ping a range of addresses. superuser.com/questions/420714/cmd-exe-command-to-ping-a-range-of-addresses.

2. Microsoft Learn. Windows Commands: ping. learn.microsoft.com/en-us/windows-server/administration/windows-commands/ping.

3. Microsoft Learn. Test-Connection (PowerShell). learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/test-connection.

4. Reddit r/PowerShell. How to do continuous ping to multiple IPs and show their results. reddit.com/r/PowerShell/comments/17949iu/how_to_do_continuous_ping_to_multiple_ips_and/.

5. NirSoft. PingInfoView. nirsoft.net/utils/pinginfoview.html.

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

Stefano Barcellos

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

« Попередній допис
Індикатор рівня чорнила: як вибрати та перевірити

Схожі дописи