python和shell实现的校验IP地址合法性脚本分享
admin
2023-07-31 02:11:46
0

一、python校验IP地址合法性

执行效果:

python代码:

复制代码 代码如下:  
[root@yang python]# vi check_ip.py
#!/usr/bin/python
import os,sys
def check_ip(ipaddr):
        import sys
        addr=ipaddr.strip().split(\’.\’)   #切割IP地址为一个列表
        #print addr
        if len(addr) != 4:   #切割后列表必须有4个参数
                print \”check ip address failed!\”
                sys.exit()
        for i in range(4):
                try:
                        addr[i]=int(addr[i])   #每个参数必须为数字,否则校验失败
                except:
                        print \”check ip address failed!\”
                        sys.exit()
                if addr[i]<=255 and addr[i]>=0:    #每个参数值必须在0-255之间
                        pass
                else:
                        print \”check ip address failed!\”
                        sys.exit()
                i+=1
        else:
                print \”check ip address success!\”
if  len(sys.argv)!=2:  #传参加本身长度必须为2
        print \”Example: %s 10.0.0.1 \”%sys.argv[0]
        sys.exit()
else:
        check_ip(sys.argv[1])   #满足条件调用校验IP函数

二、shell校验IP地址合法性

执行校果:
  返回值0校验合法,非0不合法。

shell代码:

复制代码 代码如下:
[root@yang python]# vi check_ip.sh
#!/usr/bin/sh
CheckIPAddr()
{
echo $1|grep \”^[0-9]\\{1,3\\}\\.\\([0-9]\\{1,3\\}\\.\\)\\{2\\}[0-9]\\{1,3\\}$\” > /dev/null;
#IP地址必须为全数字
        if [ $? -ne 0 ]
        then
                return 1
        fi
        ipaddr=$1
        a=`echo $ipaddr|awk -F . \'{print $1}\’`   #以\”.\”分隔,取出每个列的值
        b=`echo $ipaddr|awk -F . \'{print $2}\’`
        c=`echo $ipaddr|awk -F . \'{print $3}\’`
        d=`echo $ipaddr|awk -F . \'{print $4}\’`
        for num in $a $b $c $d
        do
                if [ $num -gt 255 ] || [ $num -lt 0 ]     #每个数值必须在0-255之间
                then
                        return 1
                fi
        done
                return 0
}
if [ $# -ne 1 ];then            #判断传参数量
        echo \”Usage: $0 ipaddress.\”
        exit
else
CheckIPAddr $1
fi

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...