2021-05-12 14:32:11
如何使用Linux掃描網路上的IP地址
您可能多少次嘗試為網路上的一台計算機設定靜態IP地址,卻發現自己根本不知道已經有人用了哪些地址?如果您使用的是台式計算機,那麼您總是可以安裝Wireshark這樣的工具來查詢正在使用的地址。但是如果您使用的是無GUI伺服器呢?您當然不會依賴於基於圖形的工具來掃描IP地址。幸運的是,有一些非常容易使用的命令列工具可以處理這個任務。
我將向您展示如何使用兩種不同的工具掃描區域網(LAN)中的IP地址(預設情況下,其中一種工具安裝在您的伺服器上)。 我將在Ubuntu Server 18.04上演示。
讓我們開始吧。
arp命令
我們將用於該任務的第一個工具是內建的arp命令。 大多數IT管理員都熟悉arp,因為幾乎在每個平台上都使用它。 如果您從未使用過arp(代表地址解析協定),則該命令用於操作(或顯示)核心的IPv4網路鄰居快取。 如果發出沒有模式說明符或選項的arp,它將列印出ARP表的當前內容。 那不是我們要做的。 相反,我們將發出如下命令:
linuxidc@linuxidc:~$ arp -a
? (192.168.182.239) 位於 00:0c:29:93:95:f8 [ether] 在 ens33
_gateway (192.168.182.2) 位於 00:50:56:f6:7e:c2 [ether] 在 ens33
? (192.168.182.254) 位於 00:50:56:ec:da:77 [ether] 在 ens33
? (192.168.182.223) 位於 00:0c:29:93:77:6f [ether] 在 ens33
? (192.168.182.1) 位於 00:50:56:c0:00:08 [ether] 在 ens33
圖1:我的區域網上有很多虛擬機器
-a選項使用和備用BSD樣式輸出並列印LAN上找到的所有已知IP地址。 該命令的輸出將顯示IP地址以及相關的乙太網裝置
您現在擁有LAN上使用的每個IP地址的列表。 唯一需要注意的是(除非您知道網路中每台裝置的MAC地址),否則您將無法知道IP地址分配給哪台機器。 即使不知道哪個機器與哪個地址相關聯,您至少知道正在使用的地址。
NMAP
接下來,我們使用提供更多選項的命令。 所述命令是nmap。 預設情況下,您的Linux機器上不會安裝nmap,因此我們必須將其新增到系統中。 開啟終端視窗(或登入無GUI伺服器)並行出命令:
linuxidc@linuxidc:~$ sudo apt-get install nmap -y
圖2
安裝完成後,您就可以使用nmap掃描LAN了。 要找出正在使用的地址,請發出以下命令:
nlinuxidc@linuxidc:~$ map -sP 192.168.182.0/24
圖3:命令輸出將顯示LAN上找到的每個地址。
注意:您需要更改IP地址方案以匹配您的IP地址方案。
Nmap現在給我們提供更多資訊。
讓我們使nmap更有用。 因為它提供了更多的靈活性,我們還可以發現與IP地址關聯的作業系統。 為此,我們將使用選項-sT(TCP連線掃描)和-O(作業系統發現)。 這個命令是:
linuxidc@linuxidc:~$ sudo nmap -sT -O 192.168.182.0/24
圖4
根據網路的大小,此命令可能需要一些時間。 如果您的網路很大,請考慮將命令的輸出傳送到如下檔案:
linuxidc@linuxidc:~$ sudo nmap -sT -O 192.168.182.0/24 > nmap_output
圖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)
請到這裡解決:http://www.linuxidc.net/thread-4836-1-1.html
相關文章