python3使用IPy检测IP地址的合法性

网上看到这个教程,感觉以后做数据分析用的上,于是本地测试分析了下,根据自己的总结来记录最后正确的答案,一般网上有三种方式,第一种是正则表达式,第二种是拆解IP地址为列表来逐个判断,第三种使用外部IPy模块,个人建议使用第三种,两个字,省事,由于我验证过了,所以我得出的结论不光是省事,我截图大家看下就知道了。

menu.saveimg.savepath20181214192155.jpg

如果IP格式是这种xxx.xxx.xxx不足十分位百分位的用0补全的地址的话,使用正则这种方式会匹配不到,正则我不是太精通,我个人还是推荐IPy模块来匹配,两种代码都发出来,以后亦可以进行参考


正则匹配方式

#!/usr/bin/python3
#coding:utf-8
import re
ipaddr = '192.168.100.010'
reg = '^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$'
compile_ip = re.compile(reg)
if compile_ip.match(ipaddr):
    print("ok !")
else:
    print('this not ip address !')

使用IPy模块来匹配

#!/usr/bin/python3
#coding:utf-8
import IPy
ipaddr = '192.168.100.010'
try:
    IPy.IP(ipaddr)
    print("ok !")
except:
    print('this not ip address !')


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/601.html