How to check if ping responded or not in a batch file

В этой статье мы расскажем, что делает команда Ping, и разберём, где может понадобиться команда Ping.

Описание команды

Серверы требуют постоянной диагностики своих систем. Одним из базовых инструментов, который помогает в администрировании сервера, является утилита Ping. Её основная задача ― определение работоспособности узла, сайта или сервера в интернете.

Как это работает? Команда Ping в cmd посылает небольшие пакеты на сервер, который нужно проверить. Через некоторое время от сервера приходит ответ ― те же пакеты, что и были отправлены. Исходя из этого ответа оценивается работоспособность сервера. Устройство работает нормально, если отправленные пакеты вернулись полностью и быстро.

Кроме проверки доступности удалённого хоста, с помощью этой команды можно:

  • измерить время, за которое сервер отвечает на команду,
  • определить качество соединения (были ли потеряны пакеты в пути),
  • внедрить команду в bash-скрипт для автоматической проверки сетевого устройства.

Обратите внимание! Если вы используете прокси-сервер, команда пинг работать не будет, так как для её действия нужно прямое соединение с устройством.

У команды есть несколько параметров, которые предназначены для разных задач. Чтобы посмотреть все возможные опции, введите в командной строке:

  • Нажмите значок поиска на Панели задач.
  • В строке поиска введите cmd.
  • В результатах поиска найдите Командная строка.
  • В открывшемся меню выберите пункт Запустить от имени администратора:

Перед вами появится весь список доступных параметров:

How to check if ping responded or not in a batch file

Since using a goto in a for loop breaks out of all for loops not just the lowest nested for loop, PaxDiablo’s code stopped processing further IP addresses when it got to one that was unreachable. I found that I could add a second variable to track that it was unreachable rather than exiting the loop and now this code is now running perfectly for me.

I have the file saved as CheckPCs.bat and though I’m guessing it’s not proper coding practice, I do have the IP addresses listed below the code along with a description which in my case is the physical location of the PC. As mentioned by others you will have to modify the code further for other localizations and for IPV6.

Some notes if you do need to modify this code:

for /f “tokens=2,3 delims=/ skip=16” %%i in (CheckPCs.bat) do (

Lastly, something people with proper training in coding these might know, the way a batch for loop with tokens works (in simple terms) is each section of the text is split up at each delimiter, the default being space, and then it is assigned to a %% variable whose name begins at whichever character you specify and then increases up the ascii character list. This means if I specify to start at %%i, the next token will be %%j, then %%k and so on. If I used %%B, next would be %%C, then %%D etc. There can be a maximum of 31 tokens per another thread I read on the topic.

Тоже задавался вопросом непрерывного пинга с логгированием и временными метками. Написал бат-файл:

I want to learn how to write batch scripts and tried to create a script which automatically runs this command in the command line once:

ping -t

and displays the ping, so it would look like this:

Reply from XXX.XXX.X.XX: time=30ms
Reply from XXX.XXX.X.XX: time=31ms
Reply from XXX.XXX.X.XX: time=29ms

My problem is, that this will result in this when I execute this command as script:

How to check if ping responded or not in a batch file

My problem is that it will not execute the ping command at all, but just insert the command unlimited times in the console window as its shown in the screenshot.

I just created a new file, wrote ping -t in it, saved it as ping.bat file and executed it with double clicking on it.

So how to write the batch file to start this command only once and display the ping result?

How to check if ping responded or not in a batch file

16 gold badges78 silver badges138 bronze badges

asked Aug 3, 2014 at 17:47

I am sure you must have named the resultant bat file as “ping.bat”. If you rename your file to something else say pingXXX.bat. It will definitely work. Try it out.

my batch file contains below code only

ping -t

with file name as ping.bat

:/>  Вирус майнер — как обезопасить себя + все способы удаления, если уже подхватили

How to check if ping responded or not in a batch file

with file name abc.bat

How to check if ping responded or not in a batch file

answered Feb 7, 2015 at 6:37

Enter in a command prompt window ping /? and read the short help output after pressing RETURN. Or take a look on:

Explanation for option -t given by Microsoft:

You may want to use:

Or to check first if a server is available:

answered Aug 3, 2014 at 18:16

answered Dec 13, 2016 at 10:00

How to check if ping responded or not in a batch file

5 gold badges59 silver badges81 bronze badges

if you want to use the name “ping.bat”, a small trick is to use this code:

answered Jul 21, 2015 at 17:21

1 silver badge3 bronze badges

To address your EDIT: where the main concern is ping command was not recognizable. ping command generally will be located under C:WindowsSystem32 where C: being the root directory. In case, the root directory is different you can get the root directory using %SystemRoot% environment variable and can say like

%SystemRoot%WindowsSystem32PING.EXE -t

Another way to see if the command you are trying to run is recognizable or not is using WHERE command like below

If the command is recognizable; it will output the path like

Else will result in error

answered Aug 3, 2014 at 17:57

How to check if ping responded or not in a batch file

13 gold badges69 silver badges123 bronze badges

I know why, you are using the file name “ping” and you are using the code “ping”, it just keeps trying to run itself because its selected directory in where that file is, if you want it to actually ping, put this before the ping command: “cd C:Windowssystem32”, the actual file that pings the server is in there!

answered Jun 12, 2015 at 18:15

How to check if ping responded or not in a batch file

answered Jun 11, 2018 at 21:53

i used Mofi sample, and change some parameters, no you can do -t

answered Jan 2, 2015 at 13:39

How to check if ping responded or not in a batch file

1 gold badge40 silver badges54 bronze badges

So the complete command would be:

cd ..

How to check if ping responded or not in a batch file

6 gold badges42 silver badges54 bronze badges

answered Oct 19, 2016 at 21:30

Having 2 scripts called test.bat and ping.bat in same folder:

Script test.bat contains one line:

Script ping.bat contains below lines:

Executing “test.bat” the result on CMD will be:

Press any key to continue . . .

Why? Because “test.bat” is calling the “ping.bat” (“ping” is interpreted as calling the “ping.bat” script).
Same is happening if script “ping.bat” contains “ping”. The script will execute himself in a loop.

Easy ways to avoid this:

  • Do not name your script “ping.bat”.
  • You can name the script as “ping.bat” but inside the script use “ping.exe” instead of “ping”.

answered Oct 25, 2016 at 9:09

How to check if ping responded or not in a batch file

So basically what happens is that we run ping.exe application with parameters ‘-t’ and ‘’ (web-address).

answered Jul 15, 2021 at 4:27

The answer to your question is this

Ping -n 1

But if you want it to be faster than this, this will be your answer

Ping -n 1 -l 1

Note: Replace with your desired IP address

answered Aug 30, 2022 at 11:04

answered Apr 3, 2017 at 4:17

Это звучит просто, и это так. Вы можете проверить, может ли Ваш компьютер подключаться к другому устройству — например, Вашему маршрутизатору — в локальной сети или к устройству в Интернете. Это может помочь Вам определить, есть ли сетевая проблема где-то в Вашей локальной сети или где-то еще. Время, необходимое для возврата пакетов, может помочь Вам определить медленное соединение или если Вы столкнулись с потерей пакетов.

И не имеет значения, какую операционную систему Вы используете. Поднимите терминал или окно командной строки, и Вы можете использовать ping для MacOS, Linux или любой версии Windows.

Как использовать Ping

Мы собираемся использовать командную строку Windows в нашем примере здесь. Но Dы также можете использовать команду ping в Windows PowerShell или в приложении Terminal на macOS или любом дистрибутиве Linux. Как только Dы доберетесь до фактической команды, она работает одинаково везде.

:/>  Свойства папки в Windows 7 8 10 XP где найти параметры как открыть изменить » Компьютерная помощь

В Windows нажмите Windows + R. В окне «Запуск» введите «cmd» в поле поиска и нажмите «Enter».

How to check if ping responded or not in a batch file

How to check if ping responded or not in a batch file

Внизу Вы увидите сводку, которая показывает, сколько пакетов было отправлено и получено, а также минимальное, максимальное и среднее время отклика.

How to check if ping responded or not in a batch file

Когда инструмент ping не получает ответа от любых устройств, которые Вы пинговали, это также дает Вам знать об этом.

How to check if ping responded or not in a batch file

И вот как использовать пинг на самом базовом уровне. Конечно, как и большинство команд, есть несколько дополнительных опций, которые Вы можете использовать, чтобы заставить его вести себя по-другому. Например, Вы можете заставить его отслеживать пункт назначения до тех пор, пока Вы не остановите команду, не укажете, сколько раз Вы хотите, чтобы он выполнял ping, задал, как часто он должен пинговать, и многое другое. Но, если Вы не выполняете некоторые конкретные типы устранения неполадок, Вам не нужно беспокоиться об этих расширенных параметрах.

How to check if ping responded or not in a batch file

Что Вы можете сделать с помощью Ping

Теперь, когда Вы знаете, как использовать эту команду, вот некоторые интересные вещи, которые Вы можете сделать с ней:

  • Ping Вашего маршрутизатора, чтобы увидеть, можете ли Вы достичь его. Если Вы не можете успешно выполнить ping интернет адреса, Вы можете попробовать выполнить ping-соединение с Вашим маршрутизатором. Успешный ответ позволяет узнать, что Ваша локальная сеть работает нормально, и проблема, связанная с доступом к интернет-сайту, находится где-то вне Вашего контроля.
  • Ping Вашего loopback-адреса ( Если Вы не можете успешно выполнить ping роутера, но Ваш маршрутизатор, похоже, включен и работает, Вы можете попробовать ping так называемый loopback адреса. Этот адрес всегда, и его успешное тестирование позволяет узнать, что сетевой адаптер на Вашем компьютере (и сетевое программное обеспечение в Вашей ОС) работает правильно.

Примечание: Вы не можете получить ответ ping с других компьютеров в локальной сети, потому что встроенные брандмауэры на этих устройствах не позволяют им отвечать на запросы ping. Если Вы хотите иметь возможность пинговать эти устройства, Вам необходимо отключить эту настройку, чтобы разрешить прохождение через брандмауэр.

В приведенном выше списке используется внешний подход, когда Вы сначала отправляете запрос на самый удаленный пункт назначения, а затем прокладываете путь к более локальным устройствам. Некоторым людям нравится работать наоборот, сначала пинг loopback адреса, затем маршрутизатор (или другое локальное устройство), а затем интернет-адрес.

И, конечно, о чем мы говорим в этой статье, в основном относится к использованию ping для устранения неполадок в домашней или малой бизнес-сети. Кроме того, если Вам поручено устранять неполадки в крупных сетях, Вы, вероятно, уже знаете, как использовать пинг и многие другие сетевые инструменты.

How to check if ping responded or not in a batch file

= эта опция будет пинговать целевое устройство до тех пор, пока вы принудительно не остановите запрос с помощью сочетания клавиш .

число = задаёт количество сообщений, которое должно быть отправлено. Если выполнить команду без указания этого параметра, то по умолчанию будет отправлено запроса.

= задаёт длительность (Time to Live), максимальное значение которой составляет .

= устанавливает значение (Type of Service). Параметр не работает в и выше.

число = эту опцию для команды нужно использовать для указания количества переходов между вашим и целевым компьютером, которое вы хотите записать и вывести. Максимальное значение , так что, если вам интересно узнать точное количество звеньев между двумя устройствами, то лучше использовать .

= значения тайм-аута в миллисекундах, в течение которого ping будет ожидать каждого ответа. Если не использовать опцию -w, то тайм-аут по умолчанию будет составлять миллисекунд ().

= использование заголовка для проверки также и обратного маршрута.

= используемый адрес источника.

= используется для проверки состояния адреса Hyper-V Network Virtualization.

= принудительная проверка состояния подключения по протоколу . Это необходимо, когда известно только имя хоста.

() = удаленное устройство, состояние которого нужно проверить. Это может быть как , так и имя хоста.

= вывод справки обо всех доступных параметрах команды .

, , , , и работают только при проверке состояния . Опции и работают только с протоколом .

ping -n 5 -l 1500

– отличный способ проверить работоспособность всех функций . Но с помощью этого запроса не получится узнать о состоянии своего или удаленного компьютера. Существует и этой проверки – .

:/>  Как улучшить качество звука в наушниках

В этом примере мы, при помощи опции , включаем принудительное использование протокола , а затем приступаем к бесконечной проверке состояния (при помощи опции ).

После семи полученных ответов мы намеренно прервали проверку состояния. Вспоминаем, как остановить команду ? При помощи . Также привела к использованию адресов по протоколу .

число после знака в сгенерированных в данном примере ответах указывает на протокола , которая определяет используемый сетевой шлюз. Можно сгенерировать таблицу из , совпадающих с названием вашего сетевого шлюза, при помощи netsh interface ipv6 show interface. IPv6 Zone ID отображается числом в колонке .

Команда ping поддерживается в командной строке ОС Windows 10, , , и , а также и .

Её также можно использовать в дополнительных настройках автозагрузки и опциях восстановления системы.

Команда ping часто используется как дополнение к другим командам (, , , и ).

Комбинация параметров

Чтобы получить подходящую команду, можно комбинировать параметры.
Например: ping —с 6 —s 100

Как изменить размер пакета

По умолчанию команда отправляет пакеты размером по 56 байт. Такой размер файлов не влияет на работу сети при пинговании. Если нужно, вес пакетов можно изменить. Для этого используйте параметр -s. Введите:

ping -s packet_size

Например: ping —s 100 123.456.1.1

Как изменить интервал времени отправления пакета

По умолчанию пакеты отправляются с интервалом в 1 секунду. Если вы хотите сделать интервал меньше или больше, введите:

Обратите внимание! Для установки значений меньше 0,2 секунды требуются права суперпользователя.

Как увеличить время ожидания ответа от сервера

Время ожидания ответа можно изменить с помощью параметра -w.

Где 5000 ― время ожидания в миллисекундах (1с = 1000 мс).

Как протестировать нагрузку

Чтобы протестировать нагрузку, нужно организовать массовую отправку пакетов. Обратите внимание, эта команда доступна только для суперпользователя. Введите:

За секунду будут отправлены тысячи запросов. Чтобы прекратить отправку, нажмите Ctrl+C. Система покажет вам количество отправленных и обработанных пакетов.

Как включить звуковой сигнал для уведомления о начале работы
Если на сервере есть сбой, для его решения нужно будет глубоко погружаться в настройки системы. Для удобства можно установить звуковой сигнал. Как только проблема на сервере будет устранена, утилита автоматически оповестит пользователя о восстановлении соединения.

Для включения звукового сигнала введите:

Как отправить определённое количество пакетов

Необязательно вручную останавливать отправку пакетов. Можно сразу ограничить их количество параметром -c. Для этого введите:

How to check if ping responded or not in a batch file

Как проверить доступность и работоспособность сервера

Это самый простой запрос. Устройство должно отправить некоторое количество пакетов на нужный сервер и проверить время ответа и количество возвращённых параметров. Также этим методом пользователи пингуют популярные сайты, чтобы узнать, есть ли проблемы с интернет-соединением на их устройстве.

Для проверки доступности сервера введите:

Вместо может быть указан:

На Windows и Linux эта команда работает по-разному. Команда Ping в Linux посылает пакеты, пока вы не прервёте их отправку вручную с помощью сочетания клавиш Ctrl+C.

Вам придёт ответ:

В выданной статистике будет информация о количестве отправленных, полученных и потерянных пакетов, а также минимальное, максимальное и среднее время их передачи.

На Windows команда по умолчанию отправляет только 4 пакета. Если на Windows вам нужно отправить больше пакетов, можно ввести команду с параметром -t. Это будет выглядеть так:

Команда будет бесконечно пинговать удалённый сервер, пока вы не нажмёте Ctrl+C. После остановки перед вами снова появится статистика, но отправленных пакетов будет больше.

Хорошим временем отклика считается 10 ms, удовлетворительным ― до 20 ms. Значения выше этих могут говорить о проблеме при работе с удалённым сервером.

Вместо цифр может появиться фраза «Превышен интервал ожидания». Такое бывает, когда сервер не успел ответить за 4 секунды. Это установленное по умолчанию время ожидания для утилиты. Такой ответ не всегда говорит о проблемах на сервере. Ping-запросы не приоритетны. Если сервер перегружен, он может выполнить их позже. Можно увеличить время ожидания сервера по инструкции ниже и попробовать ещё раз.

Как вывести только результат проверки Ping в Linux

Если вы не хотите заполнять терминал пакетами, можно использовать параметр -q. Вы не будете наблюдать все параметры, а получите только статистику. Введите:

Если пакеты от команды Ping не принимаются, это может говорить о проблемах на сервере или о том, что на устройстве отключена функция ответа на ping-запросы. В обоих случаях можно воспользоваться детальной проверкой с помощью утилит tracert (для Windows) и traceroute (для Linux).

Оставьте комментарий