Python校验IP地址合法性:正则表达式与字符串解析双方案
本文分享两种在Python中判断字符串是否为合法IP地址的方法。第一种利用正则表达式进行模式匹配,第二种通过字符串分割与数值范围检查实现。代码包含完整测试用例及运行结果,适用于网络开发中的基础验证场景。
这是一道刚结束的笔试题,现将具体实现代码整理如下:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:判断一个字符串是否是合法IP地址
'''
import re
def judge_legal_ip(one_str):
'''
正则匹配方法
判断一个字符串是否是合法IP地址
'''
compile_ip=re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')
if compile_ip.match(one_str):
return True
else:
return False
def judge_legal_ip2(one_str):
'''
简单的字符串判断
'''
if '.' not in one_str:
return False
elif one_str.count('.')!=3:
return False
else:
flag=True
one_list=one_str.split('.')
for one in one_list:
try:
one_num=int(one)
if one_num>=0 and one_num<=255:
pass
else:
flag=False
except:
flag=False
return flag
if __name__=='__main__':
ip_list=['','172.31.137.251','100.10.0.1000','1.1.1.1','12.23.13','aa.12.1.2','12345678','289043jdhjkbh']
for one_str in ip_list:
if judge_legal_ip(one_str): #正则方法
#if judge_legal_ip2(one_str): #字符串方法
print '{0} is a legal ip address!'.format(one_str)
else:
print '{0} is not a legal ip address!'.format(one_str)
程序运行输出结果如下所示:
is not a legal ip address! 172.31.137.251 is a legal ip address! 100.10.0.1000 is not a legal ip address! 1.1.1.1 is a legal ip address! 12.23.13 is not a legal ip address! aa.12.1.2 is not a legal ip address! 12345678 is not a legal ip address! 289043jdhjkbh is not a legal ip address!
以上就是Python实现判断字符串是否为合法IP地址的完整示例,希望能为读者提供有价值的参考。欢迎转载分享,也感谢大家的支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









