shell习题-找出活动ip
写一个shell脚本,把192.168.0.0/24网段在线的ip列出来。
思路: for循环, 0.1 — 0.254 依次去ping,能通说明在线。
参考答案:
#!/bin/bash ips="192.168.1." for i in `seq 1 254` do ping -c 2 $ips$i >/dev/null 2>/dev/null if [ $? == 0 ] then echo "echo $ips$i is online" else echo "echo $ips$i is not online" fi done
One Response
宇恒 says:
ip=192.16.1.
for i in {1..254}
do
ping -c 2 $ip$i 2>/dev/null
if [ $? == 0 ]
then
echo ” $ip$i is online” >> 1.sh
else
echo ” $ip$i is not online” >> 1.sh
fi
done
老师我优化了下 把正确重定向的那个去掉了。因为只要执行脚本之后 我只要按住ctrl+C 可以在十秒之内通过for循环把200多个数字便利完,如果加了正确定向到空,按住ctrl+c 就不行了。。。 我有在 echo 后面定向到一个文件 只要 等文件完成之后,我grep 查找 is online 就知道哪些ip 出现了只要比较快,,还请老师指正。
2017年9月1日 at 下午11:06