Shell对IP合法性检查

来源:互联网 发布:淘宝双十一报名入口 编辑:程序博客网 时间:2024/05/13 05:12

# 检查IP地址是否合法check_ip(){ret=1flage=`awk 'BEGIN {if (match(ARGV[1], "^.*:.*$") != 0) print "true"; else print "false"}' $1`if [ "${flage}" != "true" ]; thenflage=`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" ]; thenret=0fielsevalues=`echo $1 |tr '[0-9][a-f][A-F]' '='`if [ "${values}" != "::" ]; thenflage=`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" ]; thenret=0fielseret=0fifireturn $ret}

1、输入:check_ip 1.1.1.1,结果为:0

2、输入:check_ip 1.1.1.256,结果为:1

3、输入:check_ip 1::11,结果为:0




0 0
原创粉丝点击