除了选项,所有出现在Nmap命令行上的都被视为对目标主机的说明。
最简单的情况是指定一个目标IP地址或主机名。
有时候您希望扫描整个网络的相邻主机。为此,Nmap支持CIDR风格的地址。您可以附加
一个/<numbit>在一个IP地址或主机名后面,
Nmap将会扫描所有和该参考IP地址具有
<numbit>相同比特的所有IP地址或主机。
例如,192.168.10.0/24将会扫描192.168.10.0 (二进制格式: 11000000 10101000
00001010 00000000)和192.168.10.255 (二进制格式: 11000000 10101000
00001010 11111111)之间的256台主机。
192.168.10.40/24 将会做同样的事情。假设主机
scanme.nmap.org的IP地址是205.217.153.62,
scanme.nmap.org/16 将扫描205.217.0.0和205.217.255.255之间的65,536 个IP地址。
所允许的最小值是/1,
这将会扫描半个互联网。最大值是/32,这将会扫描该主机或IP地址,
因为所有的比特都固定了。
CIDR标志位很简洁但有时候不够灵活。例如,您也许想要扫描
192.168.0.0/16,但略过任何以.0或者.255 结束的IP地址,因为它们通常是广播地址。
Nmap通过八位字节地址范围支持这样的扫描
您可以用逗号分开的数字或范围列表为IP地址的每个八位字节指定它的范围。
例如,192.168.0-255.1-254 将略过在该范围内以.0和.255结束的地址。
范围不必限于最后的8位:0-255.0-255.13.37 将在整个互联网范围内扫描所有以13.37结束的地址。
这种大范围的扫描对互联网调查研究也许有用。
IPv6地址只能用规范的IPv6地址或主机名指定。
CIDR 和八位字节范围不支持IPv6,因为它们对于IPv6几乎没什么用。
Nmap命令行接受多个主机说明,它们不必是相同类型。命令nmap
scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255将和您预期的一样执行。
虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:
-
-iL <inputfilename> (从列表中输入)
从
<inputfilename>中读取目标说明。在命令行输入
一堆主机名显得很笨拙,然而经常需要这样。
例如,您的DHCP服务器可能导出10,000个当前租约的列表,而您希望对它们进行
扫描。如果您不是使用未授权的静态IP来定位主机,或许您想要扫描所有IP地址。
只要生成要扫描的主机的列表,用-iL 把文件名作为选项传给Nmap。列表中的项可以是Nmap在
命令行上接受的任何格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围)。
每一项必须以一个或多个空格,制表符或换行符分开。
如果您希望Nmap从标准输入而不是实际文件读取列表,
您可以用一个连字符(-)作为文件名。
-
-iR <hostnum> (随机选择目标)
对于互联网范围内的调查和研究,
您也许想随机地选择目标。 <hostnum> 选项告诉
Nmap生成多少个IP。不合需要的IP如特定的私有,组播或者未分配的地址自动
略过。选项 0
意味着永无休止的扫描。记住,一些网管对于未授权的扫描可能会很感冒并加以抱怨。
使用该选项的后果自负! 如果在某个雨天的下午,您觉得实在无聊,
试试这个命令nmap -sS -PS80 -iR 0 -p
80随机地找一些网站浏览。
-
--exclude
<host1[,host2][,host3],...> (排除主机/网络)
如果在您指定的扫描范围有一些主机或网络不是您的目标,
那就用该选项加上以逗号分隔的列表排除它们。该列表用正常的Nmap语法,
因此它可以包括主机名,CIDR,八位字节范围等等。
当您希望扫描的网络包含执行关键任务的服务器,已知的对端口扫描反应强烈的
系统或者被其它人看管的子网时,这也许有用。
-
--excludefile <excludefile> (排除文件中的列表)
这和--exclude
选项的功能一样,只是所排除的目标是用以
换行符,空格,或者制表符分隔的
<excludefile>提供的,而不是在命令行上输入的。