go-connections: github.com/docker/go-connections/nat Index | Files

package nat

import "github.com/docker/go-connections/nat"

Package nat is a convenience package for manipulation of strings describing network ports.

Index

Package Files

nat.go parse.go sort.go

func ParsePort Uses

func ParsePort(rawPort string) (int, error)

ParsePort parses the port number string and returns an int

func ParsePortRange Uses

func ParsePortRange(ports string) (uint64, uint64, error)

ParsePortRange parses and validates the specified string as a port-range (8000-9000)

func ParsePortRangeToInt Uses

func ParsePortRangeToInt(rawPort string) (int, int, error)

ParsePortRangeToInt parses the port range string and returns start/end ints

func ParsePortSpecs Uses

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 Uses

func PartParser(template, data string) (map[string]string, error)

PartParser parses and validates the specified string (data) using the specified template e.g. ip:public:private -> 192.168.0.1:80:8000 DEPRECATED: do not use, this function may be removed in a future version

func Sort Uses

func Sort(ports []Port, predicate func(i, j Port) bool)

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 Uses

func SortPortMap(ports []Port, bindings PortMap)

SortPortMap sorts the list of ports and their respected mapping. The ports will explicit HostPort will be placed first.

func SplitProtoPort Uses

func SplitProtoPort(rawPort string) (string, string)

SplitProtoPort splits a port in the format of proto/port

type Port Uses

type Port string

Port is a string containing port number and protocol in the format "80/tcp"

func NewPort Uses

func NewPort(proto, port string) (Port, error)

NewPort creates a new instance of a Port given a protocol and port number or port range

func (Port) Int Uses

func (p Port) Int() int

Int returns the port number of a Port as an int

func (Port) Port Uses

func (p Port) Port() string

Port returns the port number of a Port

func (Port) Proto Uses

func (p Port) Proto() string

Proto returns the protocol of a Port

func (Port) Range Uses

func (p Port) Range() (int, int, error)

Range returns the start/end port numbers of a Port range as ints

type PortBinding Uses

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 Uses

type PortMap map[Port][]PortBinding

PortMap is a collection of PortBinding indexed by Port

type PortMapping Uses

type PortMapping struct {
    Port    Port
    Binding PortBinding
}

PortMapping is a data object mapping a Port to a PortBinding

func ParsePortSpec Uses

func ParsePortSpec(rawPort string) ([]PortMapping, error)

ParsePortSpec parses a port specification string into a slice of PortMappings

type PortSet Uses

type PortSet map[Port]struct{}

PortSet is a collection of structs indexed by Port

Package nat imports 5 packages (graph) and is imported by 2569 packages. Updated 2019-06-18. Refresh now. Tools for package owners.