Я пытаюсь найти живые хосты в сети с помощью nmap:
nmap -sP 192.168.3.0/24
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-10 10:28 EEST
Nmap scan report for km-localhost (192.168.3.1)
Host is up.
Nmap scan report for km-localhost (192.168.3.6)
Host is up (0.00067s latency).
MAC Address: 00:26:18:B8:4E:B8 (Asustek Computer)
Nmap scan report for 192.168.3.7
Host is up (0.00016s latency).
MAC Address: 00:0E:2E:2B:E7:BD (Edimax Technology Co.)
Nmap scan report for km-localhost (192.168.3.11)
Host is up (-0.10s latency).
MAC Address: 6C:F0:49:74:3A:A2 (Giga-byte Technology Co.)
Nmap scan report for 192.168.3.15
Host is up (0.00057s latency).
MAC Address: 00:1F:C6:CF:76:48 (Asustek Computer)
Nmap scan report for km-localhost (192.168.3.22)
Host is up (0.0030s latency).
MAC Address: 00:12:17:6B:0C:DF (Cisco-Linksys)
Nmap scan report for 192.168.3.24
Host is up (-0.10s latency).
MAC Address: 00:02:B3:65:2D:1B (Intel)
Nmap scan report for km-localhost (192.168.3.25)
Host is up (0.00014s latency).
MAC Address: 00:C0:26:A7:6B:0F (Lans Technology CO.)
Nmap done: 256 IP addresses (8 hosts up) scanned in 4.08 seconds
Итак, Nmap обнаруживает 8 хостов. Теперь проблема возникает, когда я пытаюсь использовать список IP вместо cidr.
nmap -sP 192.168.3.1 192.168.3.6 192.168.3.7 192.168.3.11 192.168.3.15 192.168.3.22 192.168.3.24 192.168.3.25
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-10 10:33 EEST
Nmap scan report for km-localhost (192.168.3.1)
Host is up.
Nmap scan report for km-localhost (192.168.3.15)
Host is up (-0.10s latency).
MAC Address: 00:1F:C6:CF:76:48 (Asustek Computer)
Nmap done: 8 IP addresses (2 hosts up) scanned in 0.24 seconds
Здесь я предоставляю список активных IP-адресов, как вы можете видеть в предыдущей команде, но только 2 хоста из 8 отображаются как живые. Может ли кто-нибудь объяснить такое поведение nmap и, возможно, рассказать, как это сделать?
Я хочу использовать nmap в сценарии оболочки, чтобы быстро определять живые хосты. Раньше я использовал команду «fping -a», но кажется, что Nmap лучше обнаруживает хосты за брандмауэром, поэтому я хотел бы переключиться на него, не слишком сильно изменяя свой скрипт. Любая помощь будет оценена по достоинству.
Возможно, вы столкнулись с каким-то ограничением скорости, которое сбрасывает зонды. Судя по задержкам, я бы почти предположил, что вы сканируете виртуальную сеть, и в прошлом у меня были проблемы с Oracle VirtualBox, неспособным поддерживать высокую скорость передачи пакетов. Попробуйте замедлить сканирование с помощью -T2
аргумент. Еще я бы посоветовал, если вы еще этого не сделали, запустить сканирование от имени пользователя root (при условии, что вы сканируете из Linux). Многие полезные зонды (пинг ICMP, полуоткрытый SYN и незапрошенный ACK для обнаружения хоста) не могут быть отправлены, если у вас нет привилегий.
В качестве постскриптума я добавлю, что вы всегда должны использовать последнюю версию Nmap, когда это возможно. Версия 5.51 является последней стабильной версией, и ее можно скачать Вот