alibek Опубликовано 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, но намного медленнее, чем должно быть. Не подскажите, почему? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 19 мая, 2017 · Жалоба Бесполезно указывать там маленькие значения таймаута, не сработает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MATPOC Опубликовано 19 мая, 2017 · Жалоба Вам принципиально нужен ping, или просто нужно попинговать диапазон? Если второе, то попробуйте fping Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 20 мая, 2017 · Жалоба Бесполезно указывать там маленькие значения таймаута, не сработает. Да как бы нет, если в командной строке просто выполнить ping -w 50 -n 1 192.168.1.1, то отрабатывает моментально. Вам принципиально нужен ping, или просто нужно попинговать диапазон? Строго говоря, мне нужно актуализовать ARP-таблицу хоста. Но обходится при этом встроенными утилитами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 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 вычисляет и выводит статистику (отправлено ..., принято ...). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MATPOC Опубликовано 20 мая, 2017 · Жалоба Вам принципиально нужен ping, или просто нужно попинговать диапазон? Строго говоря, мне нужно актуализовать ARP-таблицу хоста. Но обходится при этом встроенными утилитами. Почему нужно обходиться встроенными утилитами? fping в сто раз удобнее в случае массовых пингов: fping -qg 10.0.0.0/24 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...