Documentation ¶
Overview ¶
Package nat is a convenience package for manipulation of strings describing network ports.
Index ¶
- func ParsePort(rawPort string) (int, error)
- func ParsePortRange(ports string) (uint64, uint64, error)
- func ParsePortRangeToInt(rawPort string) (int, int, error)
- func ParsePortSpecs(ports []string) (map[Port]struct{}, map[Port][]PortBinding, error)
- func PartParser(template, data string) (map[string]string, error)
- func Sort(ports []Port, predicate func(i, j Port) bool)
- func SortPortMap(ports []Port, bindings PortMap)
- func SplitProtoPort(rawPort string) (string, string)
- type Port
- type PortBinding
- type PortMap
- type PortMapping
- type PortSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParsePort ¶
ParsePort parses the port number string and returns an int
func ParsePortRange ¶
ParsePortRange parses and validates the specified string as a port-range (8000-9000)
func ParsePortRangeToInt ¶
ParsePortRangeToInt parses the port range string and returns start/end ints
func ParsePortSpecs ¶
func ParsePortSpecs(ports []string) (map[Port]struct{}, map[Port][]PortBinding, error)
ParsePortSpecs receives port specs in the format of ip:public:private/proto and parses these in to the internal types
func PartParser ¶
PartParser parses and validates the specified string (data) using the specified template e.g. ip:public:private -> 192.168.0.1:80:8000
func Sort ¶
Sort sorts a list of ports using the provided predicate This function should compare `i` and `j`, returning true if `i` is considered to be less than `j`
func SortPortMap ¶
SortPortMap sorts the list of ports and their respected mapping. The ports will explicit HostPort will be placed first.
Types ¶
type Port ¶
type Port string
Port is a string containing port number and protocol in the format "80/tcp"
func NewPort ¶
NewPort creates a new instance of a Port given a protocol and port number or port range
type PortBinding ¶
type PortBinding struct { // HostIP is the host IP Address HostIP string `json:"HostIp"` // HostPort is the host port number HostPort string }
PortBinding represents a binding between a Host IP address and a Host Port
type PortMap ¶
type PortMap map[Port][]PortBinding
PortMap is a collection of PortBinding indexed by Port
type PortMapping ¶
type PortMapping struct { Port Port Binding PortBinding }
PortMapping is a data object mapping a Port to a PortBinding
func ParsePortSpec ¶
func ParsePortSpec(rawPort string) ([]PortMapping, error)
ParsePortSpec parses a port specification string into a slice of PortMappings