IP地址的正则表达式为:
(([0-9]|[1-9][0-9]|1[0-9]{2\}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'
1.利用电脑IP测试下:
ifconfig | grep --color -o '\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)'
2. 利用字符串测试下:
mm="79171 DNS Resolve: img02.taobaocdn.com => 61.183.52.250 (from cache)"
ip=`echo $mm | grep -o '\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)' | wc -l`
if [ $ip -eq 1 ];then
echo "valid ip"
else
echo "invalid ip"
fi
3. 换一种方式,不用grep来匹配,而用~来匹配测试下:
iip="192.168.23.1"
if [[ $iip =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]]; then
echo "ip"
else
echo "invalid ip"
fi