Documentation
¶
Overview ¶
The ip package contains yet another IP address (and CIDR) type :-). The types differ from the ones in the net package in that they are backed by fixed-sized arrays of the appropriate size. The key advantage of using a fixed-size array is that it makes the types hashable so they can be used as map keys. In addition, they can be converted to net.IP by slicing.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrInvalidIP = errors.New("Failed to parse IP address")
Functions ¶
This section is empty.
Types ¶
type Addr ¶
type Addr interface {
// Version returns the IP version; 4 or 6.
Version() uint8
// AsNetIP returns a net.IP, which is backed by/shares storage with
// this object.
AsNetIP() net.IP
AsCalicoNetIP() calinet.IP
AsCIDR() CIDR
String() string
}
Addr represents either an IPv4 or IPv6 IP address.
func FromString ¶
type CIDR ¶
type CIDR interface {
Version() uint8
Addr() Addr
Prefix() uint8
String() string
ToIPNet() net.IPNet
}
func CIDRFromCalicoNet ¶
func CIDRFromIPNet ¶
func CIDRFromNetIP ¶
CIDRFromNetIP converts the given IP into our CIDR representation as a /32 or /128.
func CIDRFromString ¶
func MustParseCIDROrIP ¶
MustParseCIDROrIP parses the given IP address or CIDR, treating IP addresses as "full length" CIDRs. For example, "10.0.0.1" is treated as "10.0.0.1/32". It panics on failure.
func ParseCIDROrIP ¶
ParseCIDROrIP parses the given IP address or CIDR, treating IP addresses as "full length" CIDRs. For example, "10.0.0.1" is treated as "10.0.0.1/32".