如何使用Linux掃描網路上的IP地址
您可能多少次嘗試為網路上的一臺計算機配置靜態IP地址,卻發現自己根本不知道已經有人用了哪些地址?如果您使用的是臺式計算機,那麼您總是可以安裝Wireshark這樣的工具來查詢正在使用的地址。但是如果您使用的是無GUI伺服器呢?您當然不會依賴於基於圖形的工具來掃描IP地址。幸運的是,有一些非常容易使用的命令列工具可以處理這個任務。
讓我們開始吧。
arp命令
我們將用於該任務的第一個工具是內建的arp命令。 大多數IT管理員都熟悉arp,因為幾乎在每個平臺上都使用它。 如果您從未使用過arp(代表地址解析協議),則該命令用於操作(或顯示)核心的IPv4網路鄰居快取。 如果發出沒有模式說明符或選項的arp,它將打印出ARP表的當前內容。 那不是我們要做的。 相反,我們將發出如下命令:
圖1:我的區域網上有很多虛擬機器
-a選項使用和備用BSD樣式輸出並列印LAN上找到的所有已知IP地址。 該命令的輸出將顯示IP地址以及相關的乙太網裝置
您現在擁有LAN上使用的每個IP地址的列表。 唯一需要注意的是(除非您知道網路中每臺裝置的MAC地址),否則您將無法知道IP地址分配給哪臺機器。 即使不知道哪個機器與哪個地址相關聯,您至少知道正在使用的地址。
NMAP
接下來,我們使用提供更多選項的命令。 所述命令是nmap。 預設情況下,您的Linux機器上不會安裝nmap,因此我們必須將其新增到系統中。 開啟終端視窗(或登入無GUI伺服器)併發出命令:
圖2
安裝完成後,您就可以使用nmap掃描LAN了。 要找出正在使用的地址,請發出以下命令:
圖3:命令輸出將顯示LAN上找到的每個地址。
注意:您需要更改IP地址方案以匹配您的IP地址方案。
Nmap現在給我們提供更多資訊。
讓我們使nmap更有用。 因為它提供了更多的靈活性,我們還可以發現與IP地址關聯的作業系統。 為此,我們將使用選項-sT(TCP連線掃描)和-O(作業系統發現)。 這個命令是:
圖4
根據網路的大小,此命令可能需要一些時間。 如果您的網路很大,請考慮將命令的輸出傳送到如下檔案:
圖5:作業系統與IP地址相關聯。
然後,您可以使用文字編輯器檢視該檔案,以找出連線到IP地址的作業系統(圖5)。
藉助這兩個簡單的命令,您可以在網路中找到正在使用的IP地址。 現在,當您分配靜態IP地址時,您不會意外地分配一個已在使用中的IP地址。
如果還有什麼疑問,儘管提出來吧,如果出現以下問題:
WARNING: eth_send of ARP packet returned -1 rather than expected 42 (errno=22: Invalid argument)
WARNING: eth_send of ARP packet returned -1 rather than expected 42 (errno=22: Invalid argument)
WARNING: eth_send of ARP packet returned -1 rather than expected 42 (errno=22: Invalid argument)
WARNING: eth_send of ARP packet returned -1 rather than expected 42 (errno=22: Invalid argument)
WARNING: eth_send of ARP packet returned -1 rather than expected 42 (errno=22: Invalid argument)
WARNING: eth_send of ARP packet returned -1 rather than expected 42 (errno=22: Invalid argument)