fixed is_valid_public_ipv4

This commit is contained in:
endes123321 2020-03-29 16:12:36 +01:00 committed by GitHub
parent ffdf70257b
commit 8586762dde
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -33,10 +33,10 @@ def is_valid_public_ipv4(address, allow_localhost: bool = False):
parsed_ip = ipaddress.ip_address(address)
if parsed_ip.is_loopback and allow_localhost:
return True
return not any((parsed_ip.version != 4, parsed_ip.is_unspecified, parsed_ip.is_link_local,
parsed_ip.is_loopback, parsed_ip.is_multicast, parsed_ip.is_reserved, parsed_ip.is_private,
parsed_ip.is_reserved,
CARRIER_GRADE_NAT_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32")),
if parsed_ip.version != 4 or parsed_ip.is_unspecified or parsed_ip.is_link_local or parsed_ip.is_loopback or parsed_ip.is_multicast or parsed_ip.is_reserved or parsed_ip.is_private or parsed_ip.is_reserved:
return False
else:
return not any((CARRIER_GRADE_NAT_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32")),
IPV4_TO_6_RELAY_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32"))))
except ipaddress.AddressValueError:
return False