alibek Posted May 19, 2017 Posted May 19, 2017 Нужно выполнить пинг диапазона. Для надежности использую несколько пакетов на каждый узел. Узлы в локальной сети, поэтому чтобы ускорить процесс, указываю небольшой таймаут. Примерно так: 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, но намного медленнее, чем должно быть. Не подскажите, почему? Вставить ник Quote
ixi Posted May 19, 2017 Posted May 19, 2017 Бесполезно указывать там маленькие значения таймаута, не сработает. Вставить ник Quote
MATPOC Posted May 19, 2017 Posted May 19, 2017 Вам принципиально нужен ping, или просто нужно попинговать диапазон? Если второе, то попробуйте fping Вставить ник Quote
alibek Posted May 20, 2017 Author Posted May 20, 2017 Бесполезно указывать там маленькие значения таймаута, не сработает. Да как бы нет, если в командной строке просто выполнить ping -w 50 -n 1 192.168.1.1, то отрабатывает моментально. Вам принципиально нужен ping, или просто нужно попинговать диапазон? Строго говоря, мне нужно актуализовать ARP-таблицу хоста. Но обходится при этом встроенными утилитами. Вставить ник Quote
alibek Posted May 20, 2017 Author Posted May 20, 2017 Сделал такой тестовый скрипт: @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 вычисляет и выводит статистику (отправлено ..., принято ...). Вставить ник Quote
MATPOC Posted May 20, 2017 Posted May 20, 2017 Вам принципиально нужен ping, или просто нужно попинговать диапазон? Строго говоря, мне нужно актуализовать ARP-таблицу хоста. Но обходится при этом встроенными утилитами. Почему нужно обходиться встроенными утилитами? fping в сто раз удобнее в случае массовых пингов: fping -qg 10.0.0.0/24 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.