if [[ $Ip =~ ^([2-9]|[1-9][0-9]|1[0-9][0-9]|2[01][0-9]|22[0-3])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$ ]];then
#合法,则取出第一个字段,属于哪类网
Mask=`echo "$Ip"|cut -d"." -f1`
#如果是A类网,则调用net_A函数,依次类推
[ $Mask -lt 128 ] && net_A $Ip
[ $Mask -lt 192 -a $Mask -gt 127 ] && net_B $Ip
[ $Mask -gt 191 ] && net_C $Ip
else
#如果输入IP错误,则报错信息如下
echo "Error! $Ip invalid."
fi
如果要使用以上代码,要慎重...尤其是A类网和B类网...255*255*255的资源开销,您自己琢磨....呃,如果仅供测试的话,可以把结果输出到文件,放到后台执行,或者仅测试特定IP的话,您可以把for循环中seq的生成数字,修改一下,也是没问题的.....