检查ip是否正确

检查ip是否正确

我有一个脚本,需要正确写入IP。

例子:

192.168.0.1 -> echo ok
1.2.3.4 -> echo ok
4.3.a.3 -> echo Not ok
300.52.256.1 -> not ok
1.2.3.4.5 -> not ok

我试过这个:

 if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
               then
                            echo SUCCES!

但这还不够好,因为300.2.3.4对于这个表达来说这是一个很好的 IP。

唯一可接受的 IP 应该是(0-255).(0-255).(0-255).0-255)

答案1

好吧,我找到了答案:

if [[ "$ip" =~ ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ ]];
           then
                                echo SUCCES!

感谢@muru 的帮助!

相关内容