1. 項目介紹:
arping 是一個用于在局域網(LAN)中查找特定 IP 地址是否被占用的實用工具。與傳統的 ping 命令不同,arping 使用 ARP 協議來發送和接收數據包,從而能夠檢測到那些阻止 ICMP 請求的主機。arping 可以幫助網絡管理員在調試網絡時,快速確定哪些 IP 地址已經被占用,哪些是可用的。
探測目標 MAC 地址(注意測試本網段其他地址,測試本機地址沒用);
arping實用程序將 ARP和/或ICMP請求發送到指定的主機并顯示回復。主機可以由其主機名、IP地址或MAC 地址指定
arping,用來向局域網內的其它主機發送ARP請求的指令,它可以用來測試局域網內的某個IP是否已被使用。
arping命令無法一次性實現多個ip的掃描,但是可以配合shell腳本實現整個局域網的掃描。
arping主要干的活就是查看ip的MAC地址及IP占用的問題。
2. 常用選項:
使用 arping -help 命令顯示擴展幫助
arping -c 1 -a 192.168.43.2 -----相當于ping命令
arping -c 3 192.168.43.150 ------只返回三條結果
arping -C 2 -c 10 -r 192.168.43.150 -----返回目標機的MAC地址
arping -i eth1 192.168.43.150 ----指定網卡來發送請求包
arping -d 192.168.43.150 ----若返回多個MAC地址,則說明存在arp欺騙
arping -c 1 -S 網關 目標主機IP ----通過網關來來探測某主機
arping -c 1 -T IP MAC ----確定MAC與IP的對應
arping -c 1 -t MAC IP ----確定IP與MAC的對應
-c count:發送指定數量的arp包后,即停止退出
-d:這個比較重要,當局域網有IP占用的時候,可以指定這個參數,當有相同的IP的不同MAC地址reply的時候,arping會退出,退出碼為1
-r:輸出的時候只打印MAC,寫腳本的時候用得到,不用自己對結果awk了
-R:輸出的時候只打印IP,和上面一樣
-q:表示不打印輸出,寫腳本不想打印輸出的時候,應該用的到
-w deadline:指定兩個ping直接的時間間隔,單位為毫秒,默認為1秒
-0 使用此選項可以 ping 源 IP 地址 0.0.0.0。當您尚未配置界面時使用它。請注意,這可能會導致 MAC-ping 未得到答復。這是 -S 0.0.0.0 的別名。
-a 聽得見的 ping。
-A 只計算與請求地址匹配的地址(這會破壞您所做的大多數事情。僅當您同時 arping 多個主機時才有用。請參閱 arping-scan-net.sh 示例)。
-b 與 -0 類似,但源廣播源地址 (255.255.255.255)。請注意,這可能會導致 arping 未得到答復,因為這不是主機的正常行為。
-B 如果要尋址 255.255.255.255,請使用代替主機。
-c count 僅發送計數請求。
-C count 只等待計數回復,不管 -c 和 -w。
-d 查找重復的回復。如果有來自兩個不同 MAC 地址的答案,則以 1 退出。
-D 將答案顯示為感嘆號,將丟失的數據包顯示為點。就像 Cisco 上的洪水 ping。
-e 像 -a 但在沒有回復時發出嗶嗶聲。
-F 不要試圖對接口名稱保持聰明。即使未給出此開關, -i 也會禁用此智能。
-H 顯示幫助消息并退出。
-i interface 不要猜,使用指定的接口。
-p 在接口上打開混雜模式 ,如果您不“擁有”正在使用的 MAC 地址,請使用此模式。
-P 發送 ARP 回復而不是請求。與 -U 一起使用。
-q 不顯示消息,錯誤消息除外。
-r 原始輸出:每個回復只顯示 MAC/IP 地址。
-R 原始輸出:與 -r 類似,但顯示“另一個”,可以與 -r 結合使用。
-s MAC 設置源 MAC 地址。您可能需要使用 -p 。
-S IP 與 -b 和 -0 類似,但設置了源地址 。請注意,如果目標沒有到 IP 的路由,這可能會導致 arping 未得到答復。如果您不擁有正在使用的 IP,則可能需要在接口上打開混雜模式(使用 -p)。使用此開關,您無需自己獲取 IP 地址即可找出主機的 IP 地址。
-t MAC 設置 ping IP 地址時使用的目標 MAC 地址。
-T IP 當 ping 不響應廣播 ping 但可能響應定向廣播 的 MAC 時,使用 -T 作為目標地址。 示例: 要檢查 MAC-A 的地址,請使用 MAC-B 和 IP-B 的知識。 $ arping -S -s -p
-u ping MAC時顯示 index=received/sent 而不是 index=received 。
-U 發送未經請求的 ARP。這會將ARP 幀中的目標 MAC 地址設置為廣播地址 。主動提供的 ARP 用于更新鄰居的 ARP 緩存。 示例: $ arping -i <接口> -U <接口 IP>
-v 詳細輸出。使用兩次以獲得更多消息。
-w usec ping 之間的等待時間,以微秒為單位。
-W sec 與 -w 相同,但以浮點秒為單位。
1)下面如何判斷多個網關例子:
模擬前一個網關:
模擬多個網關ifcofnig etho 192.168.23.1:
模擬多個網關后:右下角arping ping出多個地址出來。
2)判斷目標ip是否存在
3)查看某個IP的MAC地址,并指定發送包的數量:
arping X.X.X.X -c 1
4)查看某個IP是否被不同的MAC占用,嗅探arp欺騙
arping X.X.X.X -d
5)查看某個MAC地址的IP
arping X:X:X:X:X:X -c 1
6)當有多塊網卡的時候,指定特定的設備來發送請求包
arping -i eth0 192.168.220.130
7)確定MAC和IP的對應,確定指定的網卡綁定了指定的IP
arping -t 00:0c:29:0a:80:4e 192.168.220.130
arping和ping的區別
ping命令在windows和linux中都能使用;arping只能在linux中使用,windows中不能使用。
主要介紹如下:
1.ping發送ICMP請求包,用來測試主機與目標主機之間的連通性。如果未連通:有可能是物理上的問題,有可能是軟件上的(防火墻開啟等)問題。
2.arping發送ARP請求包,用來測試某個IP是否被主機使用,以及使用主機的物理地址
3. 應用案例和最佳實踐
3.1 網絡調試
在網絡調試過程中,arping 可以幫助管理員快速確定哪些 IP 地址已經被占用。例如,在一個擁有多個 IP 地址的網絡中,管理員可以使用 arping 來掃描整個 IP 范圍,以確定哪些地址是可用的。
3.2 IP 地址沖突檢測
當網絡中出現 IP 地址沖突時,arping 可以用來檢測沖突的 IP 地址。通過向特定 IP 地址發送 ARP 請求,如果收到多個響應,則表明該 IP 地址存在沖突。
3.3 設備發現
在某些情況下,網絡管理員可能需要發現網絡中的所有設備。arping 可以通過發送廣播 ARP 請求來發現網絡中的所有設備,并返回它們的 MAC 地址和 IP 地址。
4. 典型生態項目
4.1 tcpdump
tcpdump 是一個強大的網絡抓包工具,可以與 arping 結合使用,以捕獲和分析網絡中的 ARP 數據包。通過 tcpdump,管理員可以更詳細地了解網絡中的 ARP 流量。
4.2 nmap
nmap 是一個網絡掃描工具,可以用于發現網絡中的主機和服務。雖然 nmap 主要使用 ICMP 和 TCP/UDP 掃描,但它也可以與 arping 結合使用,以提高網絡發現的準確性。
4.3 libpcap
libpcap 是一個用于網絡數據包捕獲的庫,arping 依賴于 libpcap 來捕獲和發送 ARP 數據包。libpcap 提供了底層的數據包捕獲功能,使得 arping 能夠高效地工作。
通過這些工具的結合使用,網絡管理員可以更全面地管理和監控網絡,確保網絡的穩定性和安全性。