#!/bin/bash
# 定义需要检测的IP地址列表
IP_LIST=(
"192.168.0.1"
"192.168.0.2"
"192.168.0.3"
"192.168.0.4"
"192.168.0.5"
"192.168.0.6"
"192.168.0.7"
"192.168.0.8"
"192.168.0.9"
)
# 定义不可达IP检测函数
check_ip_unreachable() {
local IP="$1"
local COUNT=0
while [ "$COUNT" -lt 5 ]; do
if ping -c 1 -w 1 "$IP" > /dev/null 2>&1; then
echo "IP $IP 可达。"
return 0
fi
((COUNT++))
done
echo "IP $IP 尝试5次后仍不可达。"
return 1
}
# 循环检测IP地址
for CURRENT_IP in "${IP_LIST[@]}"; do
echo "正在检测 $CURRENT_IP..."
# 检测当前IP是否不可达
check_ip_unreachable "$CURRENT_IP"
done
echo "所有IP地址检测完成。"
IP_LIST
数组包含了所有需要检测的 IP 地址。- 函数
check_ip_unreachable
用来检测一个 IP 是否连续 5 次不可达。
- 输入参数是一个 IP 地址。
- 使用
ping
命令来测试 IP 地址的可达性。 - 如果检测连续五次都不可达,打印消息并返回
1
。 - 如果中途 IP 可达,打印消息并返回
0
。
- 使用
for
循环遍历列表中的每一个 IP 地址。 - 对每一个 IP 地址调用
check_ip_unreachable
函数进行检测。无论当前 IP 可达或不可达,都会继续循环检测下一个 IP 地址,直到所有 IP 都检测完成。