Как я могу пропинговать диапазон адресов, начиная с A и заканчивая B?
4 ответа
Вы можете использовать цикл for
для проверки каждого IP-адреса по одному, но это невероятно медленно.
for /l %i in (1,1,255) do ping -n 1 192.168.0.%i | find /i "Reply"
- Смотрите: FOR /L
Вот как это сделать с тайм-аутом 100 мс и более точным выводом:
FOR /L %i IN (1,1,254) DO @ping -n 1 -w 100 192.168.1.%i | FIND /i "TTL"
Чтобы ускорить, по общему признанию, медленный ответ, приведенный выше, и, предполагая, что искомый узел находится на локальной сети или на быстром угасании, добавьте таймаут в пинг (20 миллисекунд здесь):
for /l %i in (1,1,255) do ping -w 20 -n 1 192.168.0.%i | find /i "Reply"
Это полезно, если у вас нет подходящей утилиты и у вас нет порта или вы хотите выполнить сканирование широкого порта, или если клиент не прослушивает какой-либо порт.
Давайте лучше поймем эту команду и то, как она на самом деле работает. Команда
for /l %i in (1,1,255) do ping -n 1 192.168.0.%i | find /i "Reply"
говорит: сделать цикл пингов от 1, подсчитывая 1 каждый раз, пока вы не достигнете 255, ожидая только 1 ответ в указанной сети 192.168.0.XXX.
Чтобы указать От А до В находится в (1,1255) части команды. Поскольку (x, y, z) x представляет ваше значение A (или начальную точку для вашего диапазона), y представляет сумму подсчета, чтобы найти следующее значение для попытки, а z представляет значение B (или максимальный конец вашего диапазона) ,
Очень полезная команда, и я делю ее на 3 диапазона, открываю 3 командной строки и запускаю все 3 диапазона одновременно, чтобы ускорить процесс и улучшить читаемость. Читаемость - вот почему я в конечном итоге начал использовать 3 диапазона, потому что выполнение команды полного диапазона даст результаты, да, но прокрутка вверх только возвращает назад, делая ее полезной только для коротких диапазонов.
Диапазон 1-80:
for /l %i in (1,1,80) do ping -n 1 192.168.0.%i | find /i "Reply"
Диапазон 81-165:
for /l %i in (81,1,165) do ping -n 1 192.168.0.%i | find /i "Reply"
Диапазон от 166 до 255:
for /l %i in (166,1,255) do ping -n 1 192.168.0.%i | find /i "Reply"
Удачи и Наслаждайтесь!