Documentation ¶
Index ¶
- Variables
- func AddIPOffset(base *big.Int, offset int) net.IP
- func BigForIP(ip net.IP) *big.Int
- func GetIndexedIP(subnet *net.IPNet, index int) (net.IP, error)
- func IsDualStackCIDRStrings(cidrs []string) (bool, error)
- func IsDualStackCIDRs(cidrs []*net.IPNet) (bool, error)
- func IsDualStackIPStrings(ips []string) (bool, error)
- func IsDualStackIPs(ips []net.IP) (bool, error)
- func IsIPv4(netIP net.IP) bool
- func IsIPv4CIDR(cidr *net.IPNet) bool
- func IsIPv4CIDRString(cidr string) bool
- func IsIPv4String(ip string) bool
- func IsIPv6(netIP net.IP) bool
- func IsIPv6CIDR(cidr *net.IPNet) bool
- func IsIPv6CIDRString(cidr string) bool
- func IsIPv6String(ip string) bool
- func ParseCIDRs(cidrsString []string) ([]*net.IPNet, error)
- func ParsePort(port string, allowZero bool) (int, error)
- func RangeSize(subnet *net.IPNet) int64
- type Closeable
- type IPFamily
- type IPNetSet
- func (s IPNetSet) Delete(items ...*net.IPNet)
- func (s IPNetSet) Difference(s2 IPNetSet) IPNetSet
- func (s IPNetSet) Equal(s2 IPNetSet) bool
- func (s IPNetSet) Has(item *net.IPNet) bool
- func (s IPNetSet) HasAll(items ...*net.IPNet) bool
- func (s IPNetSet) Insert(items ...*net.IPNet)
- func (s IPNetSet) IsSuperset(s2 IPNetSet) bool
- func (s IPNetSet) Len() int
- func (s IPNetSet) StringSlice() []string
- type IPSet
- func (s IPSet) Delete(items ...net.IP)
- func (s IPSet) Difference(s2 IPSet) IPSet
- func (s IPSet) Equal(s2 IPSet) bool
- func (s IPSet) Has(item net.IP) bool
- func (s IPSet) HasAll(items ...net.IP) bool
- func (s IPSet) Insert(items ...net.IP)
- func (s IPSet) IsSuperset(s2 IPSet) bool
- func (s IPSet) Len() int
- func (s IPSet) StringSlice() []string
- type LocalPort
- type PortOpener
- type Protocol
Constants ¶
This section is empty.
Variables ¶
var ListenPortOpener listenPortOpener
ListenPortOpener opens ports by calling bind() and listen().
Functions ¶
func AddIPOffset ¶
AddIPOffset adds the provided integer offset to a base big.Int representing a net.IP NOTE: If you started with a v4 address and overflow it, you get a v6 result.
func BigForIP ¶
BigForIP creates a big.Int based on the provided net.IP
func GetIndexedIP ¶
GetIndexedIP returns a net.IP that is subnet.IP + index in the contiguous IP space.
func IsDualStackCIDRStrings ¶
IsDualStackCIDRStrings returns if - all are valid cidrs - at least one cidr from each family (v4 or v6)
func IsDualStackCIDRs ¶
IsDualStackCIDRs returns if - all are valid cidrs - at least one cidr from each family (v4 or v6)
func IsDualStackIPStrings ¶
IsDualStackIPStrings returns if - all are valid ips - at least one ip from each family (v4 or v6)
func IsDualStackIPs ¶
IsDualStackIPs returns if a slice of ips is: - all are valid ips - at least one ip from each family (v4 or v6)
func IsIPv4CIDRString ¶
IsIPv4CIDRString returns if cidr is IPv4. This assumes cidr is a valid CIDR.
func IsIPv6CIDRString ¶
IsIPv6CIDRString returns if cidr is IPv6. This assumes cidr is a valid CIDR.
func ParseCIDRs ¶
ParseCIDRs parses a list of cidrs and return error if any is invalid. order is maintained
func ParsePort ¶
ParsePort parses a string representing an IP port. If the string is not a valid port number, this returns an error.
Types ¶
type IPFamily ¶
type IPFamily string
IPFamily refers to a specific family if not empty, i.e. "4" or "6".
const ( IPv4 IPFamily = "4" IPv6 = "6" )
Constants for valid IPFamilys:
type IPNetSet ¶
IPNetSet maps string to net.IPNet.
func ParseIPNets ¶
ParseIPNets parses string slice to IPNetSet.
func (IPNetSet) Delete ¶
Delete removes all items from the set.
func (IPNetSet) Difference ¶
Difference returns a set of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}
func (IPNetSet) Equal ¶
Equal returns true if and only if s1 is equal (as a set) to s2. Two sets are equal if their membership is identical. (In practice, this means same elements, order doesn't matter)
func (IPNetSet) Has ¶
Has returns true if and only if item is contained in the set.
func (IPNetSet) HasAll ¶
HasAll returns true if and only if all items are contained in the set.
func (IPNetSet) Insert ¶
Insert adds items to the set.
func (IPNetSet) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
type IPSet ¶
IPSet maps string to net.IP
func ParseIPSet ¶
ParseIPSet parses string slice to IPSet
func (IPSet) Difference ¶
Difference returns a set of objects that are not in s2 For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}
func (IPSet) Equal ¶
Equal returns true if and only if s1 is equal (as a set) to s2. Two sets are equal if their membership is identical. (In practice, this means same elements, order doesn't matter)
func (IPSet) Has ¶
Has returns true if and only if item is contained in the set.
func (IPSet) HasAll ¶
HasAll returns true if and only if all items are contained in the set.
func (IPSet) IsSuperset ¶
IsSuperset returns true if and only if s1 is a superset of s2.
type LocalPort ¶
type LocalPort struct { // Description is an arbitrary string. Description string // IP is the IP address part of a given local port. // If this string is empty, the port binds to all local IP addresses. IP string // If IPFamily is not empty, the port binds only to addresses of this // family. // IF empty along with IP, bind to local addresses of any family. IPFamily IPFamily // Port is the port number. // A value of 0 causes a port to be automatically chosen. Port int // Protocol is the protocol, e.g. TCP Protocol Protocol }
LocalPort represents an IP address and port pair along with a protocol and potentially a specific IP family. A LocalPort can be opened and subsequently closed.
type PortOpener ¶
PortOpener can open a LocalPort and allows later closing it.