检测172.24.0.0/16网段的有所IP,查看哪些IP是有效的IP

方法一:

思路:

通过ping命令来进行检测,通过grep -q ttl=来检测,

grep -q 是找到匹配行,但不显示,但是可以检测grep的退出状态,和$?的结果一样。

能够ping通则打印yes,不能ping通则打印no

#!/bin/bash
IP=172.24
for I3 in {0..254}
do
Res="$IP.$I3"
for I4 in {1..254}
do
ping -c 2 -w 2 "$Res.$I4"|grep -q 'ttl='&&echo "$Res.I4 yes"||echo "$Res.I4 no"
done
done

方法二:

直接判断ping命令的输出结果。

#!/bin/bash
IP=172.24
for I3 in {0..254}
do
Res="$IP.$I3"
for I4 in {1..254}
do
ping -c 2 -w 1 "$Res.$I4">/dev/null
if [ $? -eq  0 ];then
echo "$Res.$I4  yes"
else
echo "$Res.$I4   no"
fi
done
don