寫一個shell腳本,把局域網內,把能ping通的IP和不能ping通的IP分類,并保存到兩個文本文件里
腳本1
#!/bin/bash
#定義變量
ip=10.1.1
#循環去ping主機的IP
for ((i=1;i<=10;i++))
doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] && echo "$ip.$i is ok" >> /tmp/ip_up.txt || echo "$ip.$i is down" >> /tmp/ip_down.txt
done
腳本2
#!/bin/bash# 定義IP范圍(修改此處為你的實際網段)
start_ip=192.168.1.1
end_ip=192.168.1.254# 結果文件
reachable_file="reachable_ips.txt"
unreachable_file="unreachable_ips.txt"# 清空舊結果文件
> "$reachable_file"
> "$unreachable_file"# 提取IP前三段作為基礎網段
base_net=$(echo "$start_ip" | cut -d'.' -f1-3)# 循環檢測IP連通性
for i in $(seq 1 254); doip="$base_net.$i"echo -n "檢測 $ip ... "# 發送單次ping請求(1秒超時)if ping -c 1 -W 1 "$ip" &> /dev/null; thenecho "$ip" >> "$reachable_file"echo "通 ?"elseecho "$ip" >> "$unreachable_file"echo "不通 ?"fi
done# 結果統計
echo "========================================"
echo "檢測完成!結果已保存至:"
echo "可連通IP: $reachable_file(共 $(wc -l < "$reachable_file") 個)"
echo "不可連通IP: $unreachable_file(共 $(wc -l < "$unreachable_file") 個)"使用說明:
修改網段
編輯 start_ip 和 end_ip 變量為你的實際局域網范圍(例如 192.168.0.1-192.168.0.100)
結果文件
reachable_ips.txt:存儲可連通IP(每行一個IP)
unreachable_ips.txt:存儲不可連通IP