On Sat, Jan 14, 2017 at 02:25:51PM +0000, Mike Gabriel wrote: > Package: libnetaddr-ip-perl > Severity: important > Version: 4.079+dfsg-1 > > Resolving DNS names to IPv6 addresses with NetAddr::IP->new6($hostname) > fails and results in some IPv4'ish address with IPv6 syntax.
> 0:0:0:0:0:0:808:808/128 <- WTF??? > 8.8.8.8/32 [ The first address is in the "IPv4-Compatible IPv6 Address" format (nowadays deprecated in favour of the "IPv4-Mapped IPv6 Address" format), see https://tools.ietf.org/html/rfc4291#section-2.5.5 ] FWIW it looks to me like this is more or less intentional behaviour. >From the documentation of the new6() method: "->new6" and "->new_cis6" mark the address as being in ipV6 address space even if the format would suggest otherwise. i.e. ->new6('1.2.3.4') will result in ::102:304 [...] $addr can be any of the following and possibly more... [..] Fully Qualified Domain Name which returns an ipV4 address or an ipV6 address, embodied in that order. This seems to match the code as well, see http://sources.debian.net/src/libnetaddr-ip-perl/4.079%2Bdfsg-1/Lite/Lite.pm/#L1023 So it looks for an IPv4 address first as documented, and then makes an IPv6 address out of that, again as documented. Of course, whether this behaviour is useful/expected is another matter entirely (and I certainly agree it's unexpected.) As noted on IRC, I suspect you're better off doing the resolving step separately. -- Niko Tyni nt...@debian.org