完整脚本如下
#!/bin/bash
****# ***************************************************************************
# * @脚本名称:detect-ip-3.0.sh
# * @脚本作者:xxx@qxx.com
# * @编写时间:2024-07-03 17:00
# * @脚本版本:3.0
# * @脚本描述:探测局域网主机IP是否在线,并输入显示在线主机IP
# *******************************************************************************
# 1、定义变量
echo -e "\033[31m1.输入需探测的局域网网段\033[0m"
echo -e "\033[31m=======================================================\033[0m"
# 让用户输入需要探测的局域网网段
read -p "请输入网段(如:192.168.10.0):" network
# 提取局域网的网段号(即:IP地址的前3位)
net_sub=$(echo ${network} | awk -F "." 'BEGIN{OFS="."}{print $1,$2,$3"."}')
echo -e "\n\n"
# 定义变量i,用于后续循环语句的给在线主机添加行号
i=0
# 2.通过FOR循环+IF判断,探测主机是否在线
echo -e "\033[31m2.探测局域网主机\033[0m"
echo -e "\033[31m=======================================================\033[0m"
echo -e "\033[33m >>局域网在线主机如下:\033[0m"
for num in `seq 1 255`
do
ping -c 1 -w 1 "${net_sub}${num}" &> /dev/null
if [ $? == 0 ];then
((i++))
echo "${i} ${net_sub}${num}"
fi
done
echo -e "\033[33m >> 探测已完成 \033[0m"
脚本执行结果如下: