arping 工作於**資料鏈路層 (Layer 2)**,發送 ARP 請求,適用於**同一廣播域**內的 IP 衝突檢測、裝置存活確認、MAC 位址解析。比 ICMP ping 更底層、不受防火牆阻擋 ICMP 影響。
# CentOS/RHEL yum install -y iputils # Ubuntu/Debian apt-get install -y iputils-arping
| 參數 | 說明 |
|---|---|
-c N | 發送 N 個請求後結束 |
-f | 收到第一個回應即結束 |
-D | 重複位址偵測 (DAD) 模式,無回應表示 IP 可用 |
-I eth0 | 指定介面(預設 eth0) |
-s IP | 指定來源 IP |
-q | 靜默模式(僅回傳碼) |
-b | 廣播模式 |
arping -c 3 -f -D 192.168.2.222 # 回傳碼 0 = 無回應 (IP 空閒) # 回傳碼 1 = 有回應 (IP 已佔用,顯示 MAC)
輸出範例:
ARPING 192.168.2.222 from 0.0.0.0 eth0 Sent 3 probes (3 broadcast(s)) Received 0 response(s) # 回傳碼 0,IP 可用
ARPING 192.168.2.106 from 0.0.0.0 eth0 Unicast reply from 192.168.2.106 [00:11:22:33:44:55] 0.842ms Sent 1 probes (1 broadcast(s)) Received 1 response(s) # 回傳碼 1,IP 已被 00:11:22:33:44:55 佔用
arping -I eth1 -c 2 -s 10.0.0.5 10.0.0.100
#!/bin/bash
NET="192.168.1"
for i in {1..254}; do
arping -c 1 -f -D -q $NET.$i && echo "$NET.$i 可用" &
done
wait
if arping -c 1 -f -D 192.168.1.50 >/dev/null 2>&1; then
echo "IP 空閒,可分配"
else
echo "IP 已佔用"
fi
| 特性 | arping | ping (ICMP) |
|---|---|---|
| 層級 | Layer 2 (ARP) | Layer 3 (ICMP) |
| 跨路由 | 否 (同廣播域) | 是 |
| 受防火牆影響 | 極少 | 常被封鎖 |
| 可得 MAC | 是 | 否 |
| 需 IP 衝突檢測 | 最佳 | 不適用 |
arping 是**區域網路 IP 管理、衝突排查、裝置發現**的利器。配合 -D 模式可安全檢測 IP 可用性,自動化腳本極簡。記住:只能用於**同一 Layer 2 網段**。