arping
假設需要檢測A主機(192.168.1.66)的ip地址是否衝突,在同一網段的B主機(192.168.1.55)上執行以下命令:
$arping 192.168.1.66
ARPING 192.168.1.66 from 192.168.1.55 eth0
Unicast reply from 192.168.1.66 '[10:ab:ec:75:97:C1]' 2.186ms
Unicast reply from 192.168.1.66 '[40:98:6f:45:19:69]' 1.854ms
Unicast reply from 192.168.1.66 '[40:98:6f:45:19:69]' 1.108ms
如果只檢查出一個MAC地址,則表示A的IP是唯一的。
如果如上所示檢測出兩個MAC地址,則表示同網段內有另一臺主機與A主機IP衝突。
檢驗原理
arping命令是以廣播地址發送arp packets,以太網內所有的主機都會收到這個arp packets,但是本機收到之後不會Reply任何信息。 當我們在linux主機端上執行下面的命令時:arping 192.168.1.66
會默認使用eth0,向局域網內所有的主機發送一個:who has 192.168.1.66的arp request,tell 192.168.1.55 your mac address
當這臺主機收到這個arp packets後,則會應答:"I am 192.168.1.66 , mac是40:98:6f:45:19:69"
這樣我們會收到mac地址爲40:98:6f:45:19:69的主機的Reply信息。
arping 命令簡介
發送一個ARP REQUEST
到相鄰主機
語法
arping [-AbDfhqUV] [-c count] [-w deadline] [-s source] [-I interface] destination
描述
使用源地址’source’通過ARP數據包在設備接口interface上Ping目的地址destination。
選項
選項 | 描述 |
---|---|
-A | 與-U 相同,但使用ARP REPLY數據包而不是ARP REQUEST。 |
-b | 僅發送MAC級廣播。通常arping從發送廣播開始,並在回覆後切換到單播接收。 |
-c count | 發送count個ARP REQUEST數據包後停止。如果使用deadline選項,等待count個ARP REPLY數據包,或直到截止時間到期。 |
-D | 重複地址檢測模式(DAD)。見RFC2131,4.4.1。如果DAD成功,則返回0,即不會受到回覆 |
-f | 在確認目標有效的第一個回覆後完成。 |
-I interface | 指定發送ARP REQUEST報文的網絡接口。 |
-h | 打印幫助信息並退出。 |
-q | 安靜的輸出。什麼都沒顯示。 |
-s source | 用於ARP數據包的IP源地址。如果此選項不存在,源地址爲:(1)在DAD模式下(選項-D )設置爲0.0.0.0 。(2)在未經請求的ARP模式下(選項-U 或-A )設置爲destination。(3)否則,它是從路由表計算的。 |
-U | Unsolicited ARP模式用來更新鄰居的ARP緩存。預計不會有回覆。 |
-V | 打印版本信息並退出。 |
-w deadline | 無論已發送或接收了多少數據包,都指定arping退出之前的超時(以秒爲單位)。在這種情況下arping在發送了conunt個數據包後不會停止,它等待截止時間到期或直到count個探測得到應答。 |
arp-scan
arp-scan這個工具會在本地網絡發送ARP(Address Resolution Protocol)(地址解析協議)包來收集地址。如果有多個MAC地址聲稱擁有相同的IP地址,那麼這裏就存在衝突。
首先安裝arp-scan,然後
arp-scan -l
命令表示查看與本機在同一局域網內的所有機器的ip使用情況arp-scan –I eth0 -l
命令表示查看與本機在同一局域網內的所有主機的eth0網卡的ip使用情況