// The following is copied from Go 1.16 official implementation. // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package net // IPAddr represents the address of an IP end point. type IPAddr struct { IP IP Zone string // IPv6 scoped addressing zone } // Network returns the address's network name, "ip". func (a *IPAddr) Network() string { return "ip" } func (a *IPAddr) String() string { if a == nil { return "" } ip := ipEmptyString(a.IP) if a.Zone != "" { return ip + "%" + a.Zone } return ip } func (a *IPAddr) isWildcard() bool { if a == nil || a.IP == nil { return true } return a.IP.IsUnspecified() } func (a *IPAddr) opAddr() Addr { if a == nil { return nil } return a }