# 检查IP地址是否合法
check_ip()
{
ret=1
flage=`awk 'BEGIN {if (match(ARGV[1], "^.*:.*$") != 0) print "true"; else print "false"}' $1`
if [ "${flage}" != "true" ]; then
flage=`awk 'BEGIN {n=split(ARGV[1], A, ".");
if (n == 4)
for (i in A)
if ((match(A[i], "^0$") != 0) ||
(match(A[i], "^[1-9][0-9]?$") != 0) ||
(match(A[i], "^1[0-9][0-9]$") != 0) ||
(match(A[i], "^2[0-4][0-9]$") != 0) ||
(match(A[i], "^25[0-5]$"))) {res=1;}
else {res=0; break;}
if (res == 1) print "true"; else print "false"}' $1`
if [ "${flage}" = "true" ]; then
ret=0
fi
else
values=`echo $1 |tr '[0-9][a-f][A-F]' '='`
if [ "${values}" != "::" ]; then
flage=`awk 'BEGIN {n=split(ARGV[1], A, ":");
if (n <= 8)
for (i in A)
if (A[i] == "") {if (++cnt > 2) {res=0; break;}}
else if ((length(A[i]) <= 4) && (match(A[i], "^=+?$") != 0)) {res=1;}
else {res=0; break;}
if (res == 1) print "true"; else print "false"}' ${values}`
if [ "${flage}" = "true" ]; then
ret=0
fi
else
ret=0
fi
fi
return $ret
}
1、输入:check_ip 1.1.1.1,结果为:0
2、输入:check_ip 1.1.1.256,结果为:1
3、输入:check_ip 1::11,结果为:0