我需要编写一个脚本,输出一个声明一个IP是有效还是无效的语句。验证IP地址 - python
IP地址由四个字节组成(每个字节的有效范围为0-255)。
有效例子:127.0.0.1,123.244.100.1等
无效的例子:124,44,2,2,127.0.2,4,355.23.24.43等
我米猜测最简单的方法是使用正则表达式?但我遇到了一些麻烦。
我也想过使用split(),但我不知道如何处理其他不是“。”的特殊字符。
任何帮助或建议将是巨大的,感谢
我需要编写一个脚本,输出一个声明一个IP是有效还是无效的语句。验证IP地址 - python
IP地址由四个字节组成(每个字节的有效范围为0-255)。
有效例子:127.0.0.1,123.244.100.1等
无效的例子:124,44,2,2,127.0.2,4,355.23.24.43等
我米猜测最简单的方法是使用正则表达式?但我遇到了一些麻烦。
我也想过使用split(),但我不知道如何处理其他不是“。”的特殊字符。
任何帮助或建议将是巨大的,感谢
>>> import socket
>>> socket.inet_aton("127.0.0.1") # valid
'\x7f\x00\x00\x01'
>>> socket.inet_aton("127.1") # oh yes this is valid too!
'\x7f\x00\x00\x01'
>>> socket.inet_aton("127.0.0,1") # this isn't
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
socket.error: illegal IP address string passed to inet_aton
来测试有效的IPv6地址可以使用
>>> socket.inet_pton(socket.AF_INET6, "2001:db8:1234::")
b' \x01\r\xb8\x124\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
谢谢,这工作! – user2755244
您可以使用IPY模块,专业办理IP地址。 https://pypi.python.org/pypi/IPy/
from IPy import IP
try:
ip = IP('127.0.0.1')
except ValueError:
# invalid IP
的Python 3提供的ip地址模块。 http://docs.python.org/3/library/ipaddress。除了使用IPY的,你可以这样做:
ip = ipaddress.ip_address('127.0.0.1')
,这将抛出一个ValueError异常。
由于当123.444.333.1有效的IP? – Tim
哎呦固定,... – user2755244
期待您的ipv6地址的正则表达式......为什么不使用库? –