跳到主要内容

写一个脚本实现判断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 请求可能会对网络造成不必要的负担。在生产环境中使用时,请确保考虑到这些因素。