Skip to content

Commit 6757482

Browse files
authored
gh-151049: Add 2001:1::3/128 (RFC 9665) to ipaddress IPv6 global exceptions (#151050)
IANA's IPv6 Special-Purpose Address Registry (2024-04) lists 2001:1::3/128 ("DNS-SD Service Registration Protocol Anycast", RFC 9665) as globally reachable, like 2001:1::1/128 and 2001:1::2/128. It was missing from _IPv6Constants._private_networks_exceptions, so is_global returned False for it. Add the exception and extend testReservedIpv6.
1 parent 6f64920 commit 6757482

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

‎Lib/ipaddress.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2458,6 +2458,8 @@ class _IPv6Constants:
24582458
_private_networks_exceptions = [
24592459
IPv6Network('2001:1::1/128'),
24602460
IPv6Network('2001:1::2/128'),
2461+
# RFC 9665: https://www.rfc-editor.org/rfc/rfc9665.html
2462+
IPv6Network('2001:1::3/128'),
24612463
IPv6Network('2001:3::/32'),
24622464
IPv6Network('2001:4:112::/48'),
24632465
IPv6Network('2001:20::/28'),

‎Lib/test/test_ipaddress.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2535,6 +2535,10 @@ def testReservedIpv6(self):
25352535
self.assertFalse(ipaddress.ip_address('2001::').is_global)
25362536
self.assertTrue(ipaddress.ip_address('2001:1::1').is_global)
25372537
self.assertTrue(ipaddress.ip_address('2001:1::2').is_global)
2538+
# gh-151049: RFC 9665 anycast address (IANA 2024-04 registration)
2539+
self.assertTrue(ipaddress.ip_address('2001:1::3').is_global)
2540+
self.assertFalse(ipaddress.ip_address('2001:1::3').is_private)
2541+
self.assertFalse(ipaddress.ip_address('2001:1::4').is_global)
25382542
self.assertFalse(ipaddress.ip_address('2001:2::').is_global)
25392543
self.assertTrue(ipaddress.ip_address('2001:3::').is_global)
25402544
self.assertFalse(ipaddress.ip_address('2001:4::').is_global)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
:mod:`ipaddress`: fix ``is_global`` and ``is_private`` for the
2+
``2001:1::3/128`` (DNS-SD Service Registration Protocol Anycast) address,
3+
which IANA registered as globally reachable per :rfc:`9665`. It is now
4+
correctly reported with ``is_global`` ``True`` and ``is_private`` ``False``.

0 commit comments

Comments
 (0)