ip 验证2

来源:互联网 发布:豫章书院知乎 编辑:程序博客网 时间:2024/06/14 18:05

 

#!/bin/sh

ip_string="1.1.1.1,-.2.2.2" ——多个ip用“,”分隔

checkip() {

        local flag=0

        for tmp_ip in `echo $ip_string| awk -F "," '{ i=1;while(i<=NF) {print $i;i++}}'`

        do

                local num

                num=`echo $tmp_ip | awk -F "." '{print NF}'`

                if [ "$num" != "4" ];then

                        echo "ip $tmp_ip format error!"

                        exit 1

                fi


                a=`echo $tmp_ip | awk -F. '{print $1}' | sed "s/[^0-9]//g"`

                b=`echo $tmp_ip | awk -F. '{print $2}' | sed "s/[^0-9]//g"`

                c=`echo $tmp_ip | awk -F. '{print $3}' | sed "s/[^0-9]//g"`

                d=`echo $tmp_ip | awk -F. '{print $4}' | sed "s/[^0-9]//g"`

                if [ -z "$a" ] || [ $a -le 0 -o $a -ge 255 ]

                then

                        echo "ip $tmp_ip format error!"

                        exit 1

                fi

                if [ -z "$b" ] || [ $b -le 0 -o $b -ge 255 ]

                then

                        echo "ip $tmp_ip format error!"

                        exit 1

                fi

                if [ -z "$c" ] || [ $c -le 0 -o $c -ge 255 ]

                then

                        echo "ip $tmp_ip format error!"

                        exit 1

                fi

                if [ -z "$d" ] || [ $d -le 0 -o $d -ge 255 ]

                then

                        echo "ip $tmp_ip format error!"

                        exit 1

                fi

        done

}

checkip $ip_string

执行结果如下:

[root@localdomain]# sh test.sh

ip -.2.2.2 format error!

 

原创粉丝点击