正则粉丝们会这么做:
p = re.compile("^((?:(2[0-4]\d)|(25[0-5])|([01]?\d\d?))\.){3}(?:(2[0-4]\d)|(255[0-5])|([01]?\d\d?))$")
猫哥建议——使用Python自带方法,比如Socket里面的inet_aton(),例子程序如下:
import socket
def checkIP(strIP):
try:
socket.inet_aton(strIP)
return True
except socket.error:
return False
但是,此方法也有问题,比如:strIP = "1.2.3" 也会判断true
建议二,使用IPy包,也有小瑕疵。
>>> import IPy
>>> IPy.IP("3.4.5")
IP('3.4.5.0')
截止目前,貌似正则还是比较靠谱的办法。
本文探讨了正则表达式在验证IP地址有效性中的应用,并对比了Python内置方法和第三方库IPy的局限性。推荐使用正则表达式作为更可靠的选择。


被折叠的 条评论
为什么被折叠?



