The specific implementations of net.Addr are internal implementation
details of this package, and a downstream consumner shouldn't relay on
the internal use of net.IPAddr / net.TCPAddr to implement that interface
for direct extraction of IP. The consumer would instead need to go through
a round of string conversion to retreive IP safely. Adding an IP extraction
function to the interface here will allow the IP to be retreived more
efficiently.
- Add `FromIPAndZone` function (complementing the `FromIP` function).
- Handle zones when parsing `net.Addr`s.
- In `DialArgs`, return an error if an `ip6zone` is prefixed to an `ip4`
or to another `ip6zone`.
Note: I was not able to add a listen test (in TestListenAddrs) for
`/zone/.../ip6/...` since there is no link-local address which is
guaranteed to exist on all systems.