Jump to content
Калькуляторы

Вопрос по Windows ping большое время выполнения

Нужно выполнить пинг диапазона.

Для надежности использую несколько пакетов на каждый узел.

Узлы в локальной сети, поэтому чтобы ускорить процесс, указываю небольшой таймаут.

Примерно так:

ping -w 50 -n 5 192.168.1.1

Но в таком виде между отправкой каждого пакета проходит 1 секунда и эта строка выполняется не менее 5 секунд (5 секунд плюс суммарное время отклика или таймаута).

Чтобы ускорить процесс, делаю так:

for /L %i in (1,1,5) do ping -w 50 -n 1 192.168.1.1

Теоретически эта строчка должна выполниться максимум за 250 миллисекунд.

Однако на самом деле проходит больше 2 секунд.

То есть работает быстрее, чем просто ping с ключом -n, но намного медленнее, чем должно быть.

Не подскажите, почему?

Share this post


Link to post
Share on other sites

Вам принципиально нужен ping, или просто нужно попинговать диапазон? Если второе, то попробуйте fping

Share this post


Link to post
Share on other sites

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

Да как бы нет, если в командной строке просто выполнить ping -w 50 -n 1 192.168.1.1, то отрабатывает моментально.

 

Вам принципиально нужен ping, или просто нужно попинговать диапазон?

Строго говоря, мне нужно актуализовать ARP-таблицу хоста.

Но обходится при этом встроенными утилитами.

Share this post


Link to post
Share on other sites

Сделал такой тестовый скрипт:

@echo off
echo.
echo start %TIME%
ping -w 50 -n 1 192.168.1.1 > nul
echo stop %TIME%
echo.
echo n5-start %TIME%
ping -w 50 -n 5 192.168.1.1 > nul
echo n5-stop %TIME%
echo.
echo loop-start %TIME%
for /L %%i in (1,1,5) do ping -w 50 -n 1 192.168.1.1 > nul
echo loop-stop %TIME%
echo.
echo n1-start %TIME%
ping -w 50 -n 1 192.168.1.1 > nul
ping -w 50 -n 1 192.168.1.1 > nul
ping -w 50 -n 1 192.168.1.1 > nul
ping -w 50 -n 1 192.168.1.1 > nul
ping -w 50 -n 1 192.168.1.1 > nul
echo n1-stop %TIME%

И получил такие странные результаты:

start 10:37:36,14
stop 10:37:36,47

n5-start 10:37:36,47
n5-stop 10:37:42,47

loop-start 10:37:42,47
loop-stop 10:37:44,97

n1-start 10:37:44,97
n1-stop 10:37:47,47

У меня впечатление, что задержка производится, когда ping вычисляет и выводит статистику (отправлено ..., принято ...).

Share this post


Link to post
Share on other sites

Вам принципиально нужен ping, или просто нужно попинговать диапазон?

Строго говоря, мне нужно актуализовать ARP-таблицу хоста.

Но обходится при этом встроенными утилитами.

Почему нужно обходиться встроенными утилитами? fping в сто раз удобнее в случае массовых пингов: fping -qg 10.0.0.0/24

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.