我需要編寫一個腳本,輸出一個聲明一個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地址的正則表達式......爲什麼不使用庫? –