检查输入的ip格式是否匹配?

检查输入的ip格式是否匹配?

我就是这么做的。

read -p "enter ip " ip 
if [[ $ip =~ ^[1-255].[1-255].[1-255].[1-255]$ ]]; then echo "good"; fi

仅当输入为 1.1.1.1 时才有效

答案1

[1-255]表示 1 或 2 或 5 ,它不会匹配 1 到 255

使用这个代替,这里我正在计算出现次数

echo $ip | egrep -o '^([0-9]{1,3}\.){3}[0-9]{1,3}$'

[0-9]{1,3}\.表示数字 0-9 可以出现 3 次,后跟点

([0-9]{1,3}\.){1,3}意味着上面的模式必须是三倍

是的,它也会匹配不正确的 IP。

相关内容