写一个脚本实现判断192.168.1.0/24网络里,当前在线的IP有哪些,能ping通则认为在线 ?
参考答案:
以下是一个简单的 Bash 脚本,用于判断 192.168.1.0/24
网络中哪些 IP 地址是在线的。脚本会尝试 ping 网络中的每个 IP 地址,如果 ping 通则认为该 IP 地址是在线的。
#!/bin/bash
# 定义网络范围
NETWORK="192.168.1"
START=1
END=254
# 定义一个函数来检查 IP 是否在线
check_ip() {
local ip="$1"
ping -c 1 -W 1 "$ip" &> /dev/null
if [ $? -eq 0 ]; then
echo "$ip is online."
else
echo "$ip is offline."
fi
}
# 遍历网络中的每个 IP 地址
for (( i=$START; i<=$END; i++ )); do
ip="$NETWORK.$i"
check_ip "$ip"
done
你可以将上述脚本保存为一个文件(例如 check_online_ips.sh
),然后通过以下命令使其可执行:
chmod +x check_online_ips.sh
然后,你可以运行这个脚本来检查网络中的在线 IP 地址:
./check_online_ips.sh
请注意,这个脚本只是一个简单的示例,它可能不适用于大型网络或需要高效能的环境。此外,频繁的 ping 请求可能会对网络造成不必要的负担。在生产环境中使用时,请确保考虑到这些因素。