编写bash脚本实现从键盘读取一个网段 ip 地址,并检测该网段主机的上线情况。
时间: 2024-11-20 22:36:19 浏览: 23
要编写一个Bash脚本来实现这个功能,你需要使用ping命令来检查网络可达性。下面是一个简单的示例脚本,它会提示用户输入一个IP地址范围,然后检查每个IP是否在线:
```bash
#!/bin/bash
# 提示用户输入网段和子网掩码
read -p "请输入网段 IP (格式:192.168.1.0/24): " start_ip
read -p "请输入子网掩码(默认255.255.255.0): " subnet_mask=${subnet_mask:-255.255.255.0}
# 计算网段内的所有IP
ip_list=$(seq $(echo $start_ip | cut -d'.' -f1-3).$(echo $start_ip | cut -d'.' -f4) $(echo $start_ip | cut -d'/' -f1 | sed 's/\./$subnet_mask/g' | cut -d'.' -f1-3).$(echo $start_ip | cut -d'/' -f1 | sed 's/\./$subnet_mask/g' | cut -d'.' -f4))
# 遍历IP列表,对每个IP执行ping检查
for ip in $ip_list; do
echo "正在检查 $ip..."
ping -c 1 $ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$ip 是在线的"
else
echo "$ip 离线了"
fi
done
# 结束信息
echo "检查完成"
阅读全文