It’s only official for URIs, outside of URIs there is no official notation because there is no official notation for ports. :port is also a URI thing so while you’ll find a lot of software using URI syntax or something similar it’s the wild west when URIs aren’t in use
Any case where the three colons occur happens because someone just takes the IP address, prints a colon after it and the port, rather than just using existing libraries that do this right.
It is ambiguous. See this which could be either an address or address + port. 2001:db8:1::2:443
That is a valid address…expanded it would be 2001:db8:1:0:0:0:2:443
…but oh no, the intent was for it to be 2001:db8:1:0:0:0:0:2 with port 443…but you’d never know
As far as I recall the official notion is with square brackets, to avoid exactly this confusion.
But nobody uses it, to be honest
It’s only official for URIs, outside of URIs there is no official notation because there is no official notation for ports. :port is also a URI thing so while you’ll find a lot of software using URI syntax or something similar it’s the wild west when URIs aren’t in use
Can it actually be ambiguous though? If not, we should adopt this standard instead. It’s so annoying adding the square bracket
The square bracket is the standard, eg. as the IP-literal from RFC3986 <https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2>.
Any case where the three colons occur happens because someone just takes the IP address, prints a colon after it and the port, rather than just using existing libraries that do this right.
Sure but is it actually ambiguous is what I wonder
It is ambiguous. See this which could be either an address or address + port. 2001:db8:1::2:443
That is a valid address…expanded it would be 2001:db8:1:0:0:0:2:443 …but oh no, the intent was for it to be 2001:db8:1:0:0:0:0:2 with port 443…but you’d never know
Yes good example. So it’s down to a game of “do I know all my ports.” 443, 22, 80, 5900, 8080, etc