Shell脚本实现IP地址合法性判断

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

做unix/linux下的开发,脚本编写的功力是少不了的,作为shell编程,也是博大精深的一个技术领域,这里为了学习,就写一个简单的判断IP地址是否合法的微型脚本程序,这个小程序也是非常有用的。

IP地址是32位的,可以由4个十进制数值表示,每个数值的范围都是0~255.

复制代码

代码如下:

#!/bin/bash

# Test an IP address for validity:

# Usage:

#      valid_ip IP_ADDRESS

#      if [[ $? -eq 0 ]]; then echo good; else echo bad; fi

#   OR

#      if valid_ip IP_ADDRESS; then echo good; else echo bad; fi

#

function valid_ip()

{

    local  ip=$1

    local  stat=1

if [[ $ip =~ ^[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}$ ]]; then

        OIFS=$IFS

        IFS=.

        ip=($ip)

IFS=$OIFS

        [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 /

            && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]

        stat=$?

    fi

return $stat

}

# If run directly, execute some tests.

if [[ “$(basename $0 .sh)” == valid_ip ]]; then

    ips=

4.2.2.2

        a.b.c.d

        192.168.1.1

        0.0.0.0

        255.255.255.255

        255.255.255.256

        192.168.0.1

        192.168.0

        1234.123.123.123

for ip in $ips

    do

        if valid_ip $ip; then stat=good; else stat=bad; fi

        printf “%-20s: %s/n” “$ip” “$stat”

    done

fi

如果你存储成valid_ip.sh直接运行就可以得到如下结果

复制代码

代码如下:

# sh valid_ip.sh

  4.2.2.2             : good

a.b.c.d             : bad

  192.168.1.1         : good

  0.0.0.0             : good

  255.255.255.255     : good

255.255.255.256     : bad

  192.168.0.1         : good

  192.168.0           : bad

  1234.123.123.123    : bad


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容