Linux中检查字符串是否为合法IP地址的shell脚本

#!/bin/bash
#判断IP地址是否为有效IP

CHKECK_IP () {
        CHECK_STEP1=`echo $1 | awk -F"." '{print NF}'`
        if [ $CHECK_STEP1 -eq 4 ] || [ $CHECK_STEP1 -eq 6 ]
        then
                CHECK_STEP2=`echo $1 | awk -F"." '{if ($1!=0 && $NF!=0) split ($0,IPNUM,".")} END \
        { for (k in IPNUM) if (IPNUM[k]==0) print IPNUM[k]; else if (IPNUM[k]!=0 && IPNUM[k]!~/[a-z|A-Z]/ && length(IPNUM[k])<=3 &&
IPNUM[k]<255 && IPNUM[k]!~/^0/) print IPNUM[k]}'| wc -l`
                if [ $CHECK_STEP2 -eq $CHECK_STEP1 ]
                then
                        echo 0
                else
                        echo 1
                fi
        else
                echo 1
        fi
}

IPADDR=$1

CHECK_IPADDR=`CHKECK_IP $IPADDR`

if [ $CHECK_IPADDR -eq 1 ]
then
     echo "这个 $IPADDR 不是正确合法的有效IP !"
     exit 110
fi

posted @ 2021-07-01 09:55  Chuyio  阅读(760)  评论(0编辑  收藏  举报