原题
扫描192.168.31.0/24网络中哪些主机在线,如果在线,用绿色显示在线,如果不在线,用红色显示不在线
思路
- 首先需要循环升目标主机的IP地址,生成方法就是通过{ }或者seq生成1到255的数字,然后将数字和192.168.31进行字符串组合。
- 然后用ping命令来判断这个ip是否可以ping的通,在平的时候需要-c1和-w1
- 最后根据判断结果输出信息
shell源码
方法一:
#!/bin/bash
str="192.168.31."
for num in {1..255}
do
ip=${str}${num}
if ping -c1 -w1 ${ip} &>/dev/null;then
echo "$ip is online."
else
echo "$ip is offline"
fi
done
方法二:
#!/bin/bash
str="192.168.31."
for num in {1..255}
do
ip=${str}${num}
ping -c1 -w1 ${ip} &>/dev/null
num=$?
if [ $num -eq 0 ];then
echo "$ip is online."
else
echo "$ip is offline"
fi
done
总结
这个题目在运维面试的时候经常遇到,大家一定要多写几遍,切实写熟练。