kellyjonbrazil · GitHub

Bug report

Bug description:

I'm seeing strange results with python 3.13 with the ipaddress.ip_address.reverse_pointer attribute with the new improved textual representation of IPv4-mapped IPv6 addresses:

IP Address: ::FFFF:192.168.1.35

Results in a reverse_pointer of:

5.3...1...8.6.1...2.9.1.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa

instead of the old:

3.2.1.0.8.a.0.c.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa

Python 3.13:

>>> import ipaddress
>>> ip = '::FFFF:192.168.1.35'
>>> ipaddress.ip_address(ip).reverse_pointer
'5.3...1...8.6.1...2.9.1.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa'

Python 3.12:

>>> import ipaddress
>>> ip = '::FFFF:192.168.1.35'
>>> ipaddress.ip_address(ip).reverse_pointer
'3.2.1.0.8.a.0.c.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa'

I'm not sure which one is more valid or if a pointer record is even relevant in the context of mapped addresses. The original way seems more correct to me if nothing for the fact that there are strange extra dots in the new output.

This is related to:

Issue: #87799

PR: #29345

Originally posted by @kellyjonbrazil in #87799 (comment)

CPython versions tested on:

3.13

Operating systems tested on:

Linux

@opavlyuk

Linked PRs

Read the original on github.com ↗