## 四、 目標說明
除了選項,所有出現在 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 提供的,而不是在命令行上輸入的。