Documentation

Index

Examples

Constants

This section is empty.

Variables

View Source
var ListenPortOpener listenPortOpener

    ListenPortOpener opens ports by calling bind() and listen().

    Functions

    func AddIPOffset

    func AddIPOffset(base *big.Int, offset int) net.IP

      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

      func BigForIP(ip net.IP) *big.Int

        BigForIP creates a big.Int based on the provided net.IP

        func GetIndexedIP

        func GetIndexedIP(subnet *net.IPNet, index int) (net.IP, error)

          GetIndexedIP returns a net.IP that is subnet.IP + index in the contiguous IP space.

          func IsDualStackCIDRStrings

          func IsDualStackCIDRStrings(cidrs []string) (bool, error)

            IsDualStackCIDRStrings returns if - all are valid cidrs - at least one cidr from each family (v4 or v6)

            func IsDualStackCIDRs

            func IsDualStackCIDRs(cidrs []*net.IPNet) (bool, error)

              IsDualStackCIDRs returns if - all are valid cidrs - at least one cidr from each family (v4 or v6)

              func IsDualStackIPStrings

              func IsDualStackIPStrings(ips []string) (bool, error)

                IsDualStackIPStrings returns if - all are valid ips - at least one ip from each family (v4 or v6)

                func IsDualStackIPs

                func IsDualStackIPs(ips []net.IP) (bool, error)

                  IsDualStackIPs returns if a slice of ips is: - all are valid ips - at least one ip from each family (v4 or v6)

                  func IsIPv4

                  func IsIPv4(netIP net.IP) bool

                    IsIPv4 returns if netIP is IPv4.

                    func IsIPv4CIDR

                    func IsIPv4CIDR(cidr *net.IPNet) bool

                      IsIPv4CIDR returns if a cidr is ipv4

                      func IsIPv4CIDRString

                      func IsIPv4CIDRString(cidr string) bool

                        IsIPv4CIDRString returns if cidr is IPv4. This assumes cidr is a valid CIDR.

                        func IsIPv4String

                        func IsIPv4String(ip string) bool

                          IsIPv4String returns if ip is IPv4.

                          func IsIPv6

                          func IsIPv6(netIP net.IP) bool

                            IsIPv6 returns if netIP is IPv6.

                            func IsIPv6CIDR

                            func IsIPv6CIDR(cidr *net.IPNet) bool

                              IsIPv6CIDR returns if a cidr is ipv6

                              func IsIPv6CIDRString

                              func IsIPv6CIDRString(cidr string) bool

                                IsIPv6CIDRString returns if cidr is IPv6. This assumes cidr is a valid CIDR.

                                func IsIPv6String

                                func IsIPv6String(ip string) bool

                                  IsIPv6String returns if ip is IPv6.

                                  func ParseCIDRs

                                  func ParseCIDRs(cidrsString []string) ([]*net.IPNet, error)

                                    ParseCIDRs parses a list of cidrs and return error if any is invalid. order is maintained

                                    func ParsePort

                                    func ParsePort(port string, allowZero bool) (int, error)

                                      ParsePort parses a string representing an IP port. If the string is not a valid port number, this returns an error.

                                      func RangeSize

                                      func RangeSize(subnet *net.IPNet) int64

                                        RangeSize returns the size of a range in valid addresses. returns the size of the subnet (or math.MaxInt64 if the range size would overflow int64)

                                        Types

                                        type Closeable

                                        type Closeable interface {
                                        	Close() error
                                        }

                                          Closeable closes an opened LocalPort.

                                          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

                                              type IPNetSet map[string]*net.IPNet

                                                IPNetSet maps string to net.IPNet.

                                                func ParseIPNets

                                                func ParseIPNets(specs ...string) (IPNetSet, error)

                                                  ParseIPNets parses string slice to IPNetSet.

                                                  func (IPNetSet) Delete

                                                  func (s IPNetSet) Delete(items ...*net.IPNet)

                                                    Delete removes all items from the set.

                                                    func (IPNetSet) Difference

                                                    func (s IPNetSet) Difference(s2 IPNetSet) IPNetSet

                                                      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

                                                      func (s IPNetSet) Equal(s2 IPNetSet) bool

                                                        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

                                                        func (s IPNetSet) Has(item *net.IPNet) bool

                                                          Has returns true if and only if item is contained in the set.

                                                          func (IPNetSet) HasAll

                                                          func (s IPNetSet) HasAll(items ...*net.IPNet) bool

                                                            HasAll returns true if and only if all items are contained in the set.

                                                            func (IPNetSet) Insert

                                                            func (s IPNetSet) Insert(items ...*net.IPNet)

                                                              Insert adds items to the set.

                                                              func (IPNetSet) IsSuperset

                                                              func (s IPNetSet) IsSuperset(s2 IPNetSet) bool

                                                                IsSuperset returns true if and only if s1 is a superset of s2.

                                                                func (IPNetSet) Len

                                                                func (s IPNetSet) Len() int

                                                                  Len returns the size of the set.

                                                                  func (IPNetSet) StringSlice

                                                                  func (s IPNetSet) StringSlice() []string

                                                                    StringSlice returns a []string with the String representation of each element in the set. Order is undefined.

                                                                    type IPSet

                                                                    type IPSet map[string]net.IP

                                                                      IPSet maps string to net.IP

                                                                      func ParseIPSet

                                                                      func ParseIPSet(items ...string) (IPSet, error)

                                                                        ParseIPSet parses string slice to IPSet

                                                                        func (IPSet) Delete

                                                                        func (s IPSet) Delete(items ...net.IP)

                                                                          Delete removes all items from the set.

                                                                          func (IPSet) Difference

                                                                          func (s IPSet) Difference(s2 IPSet) IPSet

                                                                            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

                                                                            func (s IPSet) Equal(s2 IPSet) bool

                                                                              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

                                                                              func (s IPSet) Has(item net.IP) bool

                                                                                Has returns true if and only if item is contained in the set.

                                                                                func (IPSet) HasAll

                                                                                func (s IPSet) HasAll(items ...net.IP) bool

                                                                                  HasAll returns true if and only if all items are contained in the set.

                                                                                  func (IPSet) Insert

                                                                                  func (s IPSet) Insert(items ...net.IP)

                                                                                    Insert adds items to the set.

                                                                                    func (IPSet) IsSuperset

                                                                                    func (s IPSet) IsSuperset(s2 IPSet) bool

                                                                                      IsSuperset returns true if and only if s1 is a superset of s2.

                                                                                      func (IPSet) Len

                                                                                      func (s IPSet) Len() int

                                                                                        Len returns the size of the set.

                                                                                        func (IPSet) StringSlice

                                                                                        func (s IPSet) StringSlice() []string

                                                                                          StringSlice returns a []string with the String representation of each element in the set. Order is undefined.

                                                                                          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.

                                                                                            Example
                                                                                            Output:
                                                                                            
                                                                                            

                                                                                            func NewLocalPort

                                                                                            func NewLocalPort(desc, ip string, ipFamily IPFamily, port int, protocol Protocol) (*LocalPort, error)

                                                                                              NewLocalPort returns a LocalPort instance and ensures IPFamily and IP are consistent and that the given protocol is valid.

                                                                                              func (*LocalPort) String

                                                                                              func (lp *LocalPort) String() string

                                                                                              type PortOpener

                                                                                              type PortOpener interface {
                                                                                              	OpenLocalPort(lp *LocalPort) (Closeable, error)
                                                                                              }

                                                                                                PortOpener can open a LocalPort and allows later closing it.

                                                                                                type Protocol

                                                                                                type Protocol string

                                                                                                  Protocol is a network protocol support by LocalPort.

                                                                                                  const (
                                                                                                  	TCP Protocol = "TCP"
                                                                                                  	UDP Protocol = "UDP"
                                                                                                  )

                                                                                                    Constants for valid protocols:

                                                                                                    Directories

                                                                                                    Path Synopsis
                                                                                                    Package ebtables allows to control the ebtables Linux-based bridging firewall.
                                                                                                    Package ebtables allows to control the ebtables Linux-based bridging firewall.