diff options
author | Pete Wicken <2273100+JamoBox@users.noreply.github.com> | 2021-05-17 07:52:36 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-17 07:52:36 (GMT) |
commit | 83f0f8d62f279f846a92fede2244beaa0149b9d8 (patch) | |
tree | 3651a35943d97d9cc50cc8efe387c50cf76ad5f6 /Lib/ipaddress.py | |
parent | c10392e7ddb3eafbd11e9ffe335c07648426715f (diff) | |
download | cpython-83f0f8d62f279f846a92fede2244beaa0149b9d8.zip cpython-83f0f8d62f279f846a92fede2244beaa0149b9d8.tar.gz cpython-83f0f8d62f279f846a92fede2244beaa0149b9d8.tar.bz2 |
bpo-33433 Fix private address checking for IPv4 mapped IPv6. (GH-26172)
For IPv4 mapped IPv6 addresses, defer privacy check to the mapped IPv4 address. Solves bug where public mapped IPv4 addresses are considered private by the IPv6 check.
Automerge-Triggered-By: GH:gpshead
Diffstat (limited to 'Lib/ipaddress.py')
-rw-r--r-- | Lib/ipaddress.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/ipaddress.py b/Lib/ipaddress.py index af7aedf..4a6496a 100644 --- a/Lib/ipaddress.py +++ b/Lib/ipaddress.py @@ -16,6 +16,7 @@ import functools IPV4LENGTH = 32 IPV6LENGTH = 128 + class AddressValueError(ValueError): """A Value Error related to the address.""" @@ -2002,9 +2003,13 @@ class IPv6Address(_BaseV6, _BaseAddress): Returns: A boolean, True if the address is reserved per - iana-ipv6-special-registry. + iana-ipv6-special-registry, or is ipv4_mapped and is + reserved in the iana-ipv4-special-registry. """ + ipv4_mapped = self.ipv4_mapped + if ipv4_mapped is not None: + return ipv4_mapped.is_private return any(self in net for net in self._constants._private_networks) @property |