Dear wget maintainers,

I tried to connect to IPv6 link local address using both wget 1.20 as well as 
1.21.3.
I've replaced the address by ... for privacy reasons but since IPv6LL addresses 
are
automatically assigned on modern operating systems you can easily try this at 
home :)

The correct way to specify an IPv6 link local URL is as follows,
%25 being the url-encoded version of the percent sign:
$ wget -O- 'http://[fe80::...%25br0]:9090/topology/status'
http://[fe80::...%25br0]:9090/topology/status: Invalid IPv6 numeric address.

The following (technically invalid but otherwise harmless) method of specifying 
the zone
identifier also isn't accepted by wget - curl does seem to accept it, though:
$ wget -O- 'http://[fe80::...%br0]:9090/topology/status'
http://[fe80::...%br0]:9090/topology/status: Invalid IPv6 numeric address.

Link local addresses need a zone identifier to be valid, otherwise it isn't 
clear which
interface to bind to for sending the request since they're valid only in the 
local network
segment and not routed.

As expected, if the zone identifier is omitted, wget fails as follows:
$ wget -O- 'http://[fe80::...]:9090/topology/status'
--2023-06-28 13:21:45--  http://[fe80::...]:9090/topology/status
Connecting to [fe80::...]:9090... failed: Invalid argument.


Best regards,

Moritz

Reply via email to