BASH IP地址检查

时间:2011-11-01 17:20:54

标签: macos bash validation shell ip-address

我正在使用BASH shell脚本,我需要能够检查并查看是否从以下位置返回IP地址:

dig $HOSTNAME +short

是否在特定子网内。例如,如果192.168.10.x或10.130.10.x的一部分执行z,则执行y。

在将IP地址存储在变量中后,我不确定如何操作或检查IP地址,以便我可以构建上述逻辑测试。

2 个答案:

答案 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

感谢大家的帮助,并向我解释一些事情,让我进一步了解脚本。真的很感激!