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