alibek Posted May 19, 2017 · Report post Нужно выполнить пинг диапазона. Для надежности использую несколько пакетов на каждый узел. Узлы в локальной сети, поэтому чтобы ускорить процесс, указываю небольшой таймаут. Примерно так: 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ixi Posted May 19, 2017 · Report post Бесполезно указывать там маленькие значения таймаута, не сработает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MATPOC Posted May 19, 2017 · Report post Вам принципиально нужен ping, или просто нужно попинговать диапазон? Если второе, то попробуйте fping Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted May 20, 2017 · Report post Бесполезно указывать там маленькие значения таймаута, не сработает. Да как бы нет, если в командной строке просто выполнить ping -w 50 -n 1 192.168.1.1, то отрабатывает моментально. Вам принципиально нужен ping, или просто нужно попинговать диапазон? Строго говоря, мне нужно актуализовать ARP-таблицу хоста. Но обходится при этом встроенными утилитами. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted May 20, 2017 · Report post Сделал такой тестовый скрипт: @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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MATPOC Posted May 20, 2017 · Report post Вам принципиально нужен ping, или просто нужно попинговать диапазон? Строго говоря, мне нужно актуализовать ARP-таблицу хоста. Но обходится при этом встроенными утилитами. Почему нужно обходиться встроенными утилитами? fping в сто раз удобнее в случае массовых пингов: fping -qg 10.0.0.0/24 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...