Назад | Перейти на главную страницу

Nmap: найти бесплатные IP-адреса из диапазона

Есть ли способ сканировать бесплатные IP-адреса в сети? я использую nmap -sP 192.168.1.0/24 но на самом деле это показывает, что хосты активны.

Использование Nmap таким образом - довольно точный способ сделать то, что вы просили, при условии, что некоторые предварительные условия верны:

  1. Вы должны запустить сканирование от имени пользователя root (или администратора в Windows), чтобы отправлять запросы ARP, а не соединения TCP. В противном случае сканирование может сообщить адрес как "неработающий", если он просто защищен брандмауэром.
  2. Вы можете сделать это только из системы, подключенной к тому же каналу данных (уровень 2), что и диапазон адресов, который вы сканируете. В противном случае Nmap потребуется использовать зонды сетевого уровня, которые могут быть заблокированы межсетевым экраном.

Чтобы получить «доступные» адреса, вам необходимо получить список адресов, которые Nmap сообщает как «неработающие». Вы можете сделать это с помощью простой команды awk:

sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Сводка используемых опций Nmap:

  • Когда вы используете -v опция, Nmap будет печатать найденные адреса как «неработающие» в дополнение к «верхним».
  • Вместо того -sP, Я заменил новое написание -sn, который по-прежнему выполняет то же сканирование, но означает «пропустить сканирование порта» вместо вводящего в заблуждение «Ping-сканирования» (поскольку фаза обнаружения хоста не обязательно означает сканирование ICMP Echo или Ping).
  • В -n опция пропускает обратный поиск DNS, что дает вам немного времени, поскольку вас интересуют не имена, а только IP-адреса.
  • В -oG опция указывает Nmap выводить grepable формат, который легче обрабатывать awk. Аргумент "-"указывает ему отправить этот вывод на стандартный вывод.

Затем команда awk выполняет поиск «Status: Down» и выводит второе поле, содержащее IP-адрес.

Конечно, если у вас есть доступ к рабочим конфигурациям коммутатора или к аренде DHCP-сервера, вы можете получить этот ответ гораздо более авторитетно, не выполняя сканирование, которое могло бы вызвать срабатывание сигнализации.

Не уверен насчет n-map, но можно было бы разумно предположить, что если вы напишете сценарий ping, который отправляет 1 ping на каждый адрес, все узлы, которые возвращаются с "назначением недоступно", не заняты, а все, что возвращается, "запрос истекает" занят, но не отвечает на пинг. Разница между двумя ответами заключается в том, что «пункт назначения недоступен» не получил ответа на свой запрос ARP. «Тайм-аут запроса» означает, что что-то действительно ответило на запрос ARP, но не на пакет ICMP.

То же самое и в PowerShell ....

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}

Вот еще один, вдохновленный Андерсом Ларссоном.

для IP в 172.18.5. {129..254}; сделать {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip & готово | Сортировать

Это означает: «Попробуйте выполнить эхо-запрос для всех IP-адресов в диапазоне. Если« эхо-запрос »не прошел, распечатайте этот IP-адрес»

Если вы это сделаете

nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Работает быстро, но я заметил, что некоторые хосты, отмеченные как «Вниз», на самом деле «Вверх»