intellij idea使用教程 Eclipse插件 web开发 OpenCV4 ios shiny loam算法测试 casting gulp Parsley ACE php零基础入门视频 jquery查找子元素 python编程练习题 oracle行转列函数 mysql事务 python参数 python安装模块 java简介 java文件 java学习手册 java集合 java框架 java重写和重载的区别 java语言 java方法 java重载和重写的区别 怎么安装java环境 java定义 javalist数组 python开发实例 python下载教程 js删除数组指定元素 忧思华光玉 lseek函数 迅雷免费会员号共享 只狼脚本 c语言代码表白 高通cpu排行 红巨人插件
当前位置: 首页 > 学习教程  > python

python判断ip4合法性

2021/2/8 10:44:07 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

方法一:按照字符串拆解 def ip4_check(ip):ip_4 ip.strip().split(".") # 去掉前后空格,按.切割IP地址为一个列表if len(ip_4) ! 4: # 判断IP是否为4位数print("IP4地址应该由4个字节组成,以.分割!")exit()for i in…

方法一:按照字符串拆解

def ip4_check(ip):
    ip_4 = ip.strip().split(".")   # 去掉前后空格,按.切割IP地址为一个列表
    if len(ip_4) != 4:  # 判断IP是否为4位数
        print("IP4地址应该由4个字节组成,以'.'分割!")
        exit()
    for i in range(4):
        # 判断IP是否为0-255的整数
        if ip_4[i].isdigit() and ip_4[i] == str(int(ip_4[i])) and 0 <= int(ip_4[i]) <= 255:
            pass
        else:
            print('IP4地址必须由0-255的整数组成')
            exit()
    else:
        print('{}是合法的IP4地址'.format(ip))

 

方法二:使用IPy包

def is_ip(ip):
    import IPy
    try:
        IPy.IP(ip)
        return True
    except Exception as e:
        return False

 但是,如上图,IPy包不足4位也会判断为True,所以最好还是先校验下位数

def is_ip4(ip):
    ip_4 = ip.strip().split(".")  # 去掉前后空格,按.切割IP地址为一个列表
    if len(ip_4) == 4:  # 判断IP是否为4位数
        import IPy
        try:
            IPy.IP(ip)
            return True
        except Exception as e:
            return False
    return False

 

 

方法三: 使用python自带方法

def _check_ip4(ip):
    import socket
    try:
        socket.inet_aton(ip)
        return True
    except socket.error:
        return False

但是,也有跟IPy一样的问题 

 

方法四:使用正则表达式

def check_ip4(ip):
    import re
    compile_ip = re.compile("^((?:(2[0-4]\d)|(25[0-5])|([01]?\d\d?))\.){3}(?:(2[0-4]\d)|(255[0-5])|([01]?\d\d?))$")
    if compile_ip.match(ip):
        return True
    else:
        return False


本文链接: http://www.dtmao.cc/news_show_2000296.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?