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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this