Nmap
Nmap:從範圍內查找空閒 IP
有沒有辦法掃描網路上的免費 IP?我使用
nmap -sP 192.168.1.0/24
,但這實際上顯示主機已啟動。
像這樣使用 Nmap 是一種相當準確的方式來做你所要求的,前提是一些先決條件是真實的:
- 您必須以 root(或 Windows 上的管理員)身份執行掃描才能發送 ARP 請求,而不是 TCP 連接。否則,掃描可能會在簡單地設置防火牆時將地址報告為“關閉”。
- 您只能從與您正在掃描的地址範圍相同的數據鏈路(第 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 伺服器的租約,則無需進行可能引發安全警報的掃描即可更權威地獲得此答案。