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


14

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


10
не отвечает на пинг не обязательно означает неиспользованный.
Грант

1
Вам нужен сканер IPAM, а не nmap.
TheCleaner

2
Сканирование обнаружения хоста @Grant Nmap (иногда называемое «ping scan») отправляет множество различных тестов, а не только эхо-запросы ICMP. Для адресов в одном канале передачи данных используются запросы ARP, которые в принципе невозможно игнорировать.
Бонсайвинг

1
Также следует помнить, что узлы, которые не включены, также будут отображаться как не имеющие IP-адреса.
Теро Килканен

Ответы:


26

Подобное использование 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 или Ping ).
  • -nОпция пропускает обратный поиск DNS, который покупает вам немного времени, так как вы не заинтересованы в именах , но только IP - адреса.
  • -oGОпция указывает Nmap для вывода grepable формат, который легче AWK для обработки. Аргумент " -" говорит ему отправить этот вывод на стандартный вывод.

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

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


1
Полностью добавив это в закладки для будущего использования, и это даже не мой вопрос :)
MartinC

1

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


При запуске с привилегиями суперпользователя Nmap просто выполняет запрос ARP и сообщает об ответных адресах.
Бонсайвинг

0

Вот то же самое в PowerShell ....

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

0

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

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

Что это означает: «Попытайтесь пропинговать все Ips в диапазоне. Если« ping »терпит неудачу, напечатайте тот IP»

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.