BASH IP地址检查
问题描述:
我工作的一个bash shell脚本,我需要能够检查,看看如果IP地址从返回:BASH IP地址检查
dig $HOSTNAME +short
是一个特定的子网或之内。例如,如果192.168.10.x或10.130.10.x的一部分,则执行z其他操作。
我不知道如何操作或检查IP地址后,我将它存储在一个变量,以便我可以构建出上述的逻辑测试。
答
我结束了使用下面的代码,使其工作:
if [[ "$IP" == *10.130.10.* || "$IP" == *192.168.10.* ]]; then
mount code goes here
fi
感谢大家的帮助和解释的事情对我来说,让我进一步了解脚本。非常感谢!
答
如果你的子网是完整的类C,那么你可以做一个子检查:
if [ ${IP#192.168.10.*} == ${IP} -a ${IP#10.130.10.*} == ${IP} ]
then
echo "not in either subnet"
else
echo "in one of the subnets"
fi
编辑:请注意,这当然不验证的IP地址是有效的,但它减轻了需要外部工具。
可能相关:[检查一堆ip地址是否属于给定网络](http://stackoverflow.com/questions/435606) –