Перейти к содержимому
Калькуляторы

Вопрос по 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, но намного медленнее, чем должно быть.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

@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 вычисляет и выводит статистику (отправлено ..., принято ...).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.