说明
用于检测网段是否有存活设备, 以192.168.102.0/24这个网段为例
shell
#!/bin/bash
# 192.168.102.0/24 网段ping扫描脚本
# 并行扫描,1秒超时,快速定位在线设备
# 定义网段前缀
NETWORK="192.168.102"
# 存储在线IP的临时文件
ONLINE_IPS="/tmp/online_ips.txt"
# 初始化临时文件(清空原有内容)
> $ONLINE_IPS
# 打印扫描信息
echo "======================================"
echo " 开始扫描 192.168.102.1-254 网段"
echo " 扫描模式:并行ping(1秒超时)"
echo " 在线设备IP会自动记录并输出"
echo "======================================"
echo
# 并行ping扫描(1-254)
for IP in {1..254}; do
# ping参数说明:
# -c 1:发送1个ICMP包
# -W 1:超时1秒(快速判断)
# -q:静默模式(只输出结果,不显示过程)
ping -c 1 -W 1 -q "${NETWORK}.${IP}" > /dev/null 2>&1 && {
echo "✅ 发现在线设备:${NETWORK}.${IP}"
echo "${NETWORK}.${IP}" >> $ONLINE_IPS
} &
done
# 等待所有后台ping进程结束
wait
# 扫描完成,输出汇总
echo
echo "======================================"
echo " 扫描完成!"
echo "--------------------------------------"
if [ -s $ONLINE_IPS ]; then
echo " 在线设备总数:$(wc -l < $ONLINE_IPS) 个"
echo " 在线IP列表:"
cat $ONLINE_IPS | sort -V
else
echo " ❌ 未发现任何在线设备(检查网段或网络连接)"
fi
echo "======================================"
# 清理临时文件(可选,保留则注释此行)
rm -f $ONLINE_IPS
执行效果
