我正在使用BASH shell脚本,我需要能够检查并查看是否从以下位置返回IP地址:
dig $HOSTNAME +short
是否在特定子网内。例如,如果192.168.10.x或10.130.10.x的一部分执行z,则执行y。
在将IP地址存储在变量中后,我不确定如何操作或检查IP地址,以便我可以构建上述逻辑测试。
答案 0 :(得分:1)
如果您的子网是完整的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是否有效,但它减少了对外部工具的需求。
答案 1 :(得分:0)
我最终使用以下代码使其工作:
if [[ "$IP" == *10.130.10.* || "$IP" == *192.168.10.* ]]; then
mount code goes here
fi
感谢大家的帮助,并向我解释一些事情,让我进一步了解脚本。真的很感激!