У меня есть следующая задача:Любой лучший способ проверить строку для действительных IPv4 и IPv6?
Определите, имеет ли строка действительный адрес IPv4 или IPv6, используя только модули по умолчанию. Я нашел интересный способ использования модуля сокета здесь он:
import socket
ip = '10.1.0.10'
try:
# test for IPv4
socket.inet_pton(socket.AF_INET, ip)
except socket.error:
try:
# test for IPv6
socket.inet_pton(socket.AF_INET6, ip)
except socket.error:
print(ip, " is not valid")
кажется уродливым, чтобы попробовать под попробовать в таком случае, есть ли лучший способ? Есть ли другой модуль, который мог бы сделать то же самое лучше, учитывая тот факт, что мне нужно проверить около 100 IP-адресов.
Это не плохо, хотя. –
Достаточно ли простого регулярного выражения (http://www.regextester.com/22)? – fhelwanger
Имея действительный: вы имеете в виду, что существует узел с IP-адресом или вы можете настроить узел с этим адресом. В конце концов выделяется только подмножество разрешенных IP-адресов. –