net
Index
- func Dial(network, address string) (Conn, error)
- func DialIP(network string, laddr, raddr *IPAddr) (*IPConn, error)
- func DialTCP(network string, laddr, raddr *TCPAddr) (*TCPConn, error)
- func DialTimeout(network, address string, timeout time.Duration) (Conn, error)
- func DialUDP(network string, laddr, raddr *UDPAddr) (*UDPConn, error)
- func DialUnix(network string, laddr, raddr *UnixAddr) (*UnixConn, error)
- func FileConn(f *os.File) (c Conn, err error)
- func FileListener(f *os.File) (ln Listener, err error)
- func FilePacketConn(f *os.File) (c PacketConn, err error)
- func InterfaceAddrs() ([]Addr, error)
- func InterfaceByIndex(index int) (*Interface, error)
- func InterfaceByName(name string) (*Interface, error)
- func Interfaces() ([]Interface, error)
- func JoinHostPort(host, port string) string
- func Listen(network, address string) (Listener, error)
- func ListenIP(network string, laddr *IPAddr) (*IPConn, error)
- func ListenMulticastUDP(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)
- func ListenPacket(network, address string) (PacketConn, error)
- func ListenTCP(network string, laddr *TCPAddr) (*TCPListener, error)
- func ListenUDP(network string, laddr *UDPAddr) (*UDPConn, error)
- func ListenUnix(network string, laddr *UnixAddr) (*UnixListener, error)
- func ListenUnixgram(network string, laddr *UnixAddr) (*UnixConn, error)
- func LookupAddr(addr string) (names []string, err error)
- func LookupCNAME(host string) (cname string, err error)
- func LookupHost(host string) (addrs []string, err error)
- func LookupIP(host string) ([]IP, error)
- func LookupMX(name string) ([]*MX, error)
- func LookupNS(name string) ([]*NS, error)
- func LookupPort(network, service string) (port int, err error)
- func LookupSRV(service, proto, name string) (cname string, addrs []*SRV, err error)
- func LookupTXT(name string) ([]string, error)
- func ParseCIDR(s string) (IP, *IPNet, error)
- func ParseMAC(s string) (hw HardwareAddr, err error)
- func Pipe() (Conn, Conn)
- func ResolveIPAddr(network, address string) (*IPAddr, error)
- func ResolveTCPAddr(network, address string) (*TCPAddr, error)
- func ResolveUDPAddr(network, address string) (*UDPAddr, error)
- func ResolveUnixAddr(network, address string) (*UnixAddr, error)
- func SplitHostPort(hostport string) (host, port string, err error)
- func IPv4(a, b, c, d byte) IP
- func ParseIP(s string) IP
- func CIDRMask(ones, bits int) IPMask
- func IPv4Mask(a, b, c, d byte) IPMask
Functions
func Dial
1func Dial(network, address string) (Conn, error)
Dial connects to the address on the named network.
Known networks are “tcp”, “tcp4” (IPv4-only), “tcp6” (IPv6-only), “udp”, “udp4” (IPv4-only), “udp6” (IPv6-only), “ip”, “ip4” (IPv4-only), “ip6” (IPv6-only), “unix”, “unixgram” and “unixpacket”.
For TCP and UDP networks, the address has the form “host:port”. The host must be a literal IP address, or a host name that can be resolved to IP addresses. The port must be a literal port number or a service name. If the host is a literal IPv6 address it must be enclosed in square brackets, as in “[2001:db8::1]:80” or “[fe80::1%zone]:80”. The zone specifies the scope of the literal IPv6 address as defined in RFC 4007. The functions JoinHostPort and SplitHostPort manipulate a pair of host and port in this form. When using TCP, and the host resolves to multiple IP addresses, Dial will try each IP address in order until one succeeds.
Examples:
Dial("tcp", "golang.org:http")
Dial("tcp", "192.0.2.1:http")
Dial("tcp", "198.51.100.1:80")
Dial("udp", "[2001:db8::1]:domain")
Dial("udp", "[fe80::1%lo0]:53")
Dial("tcp", ":80")
For IP networks, the network must be “ip”, “ip4” or “ip6” followed by a colon and a literal protocol number or a protocol name, and the address has the form “host”. The host must be a literal IP address or a literal IPv6 address with zone. It depends on each operating system how the operating system behaves with a non-well known protocol number such as “0” or “255”.
Examples:
Dial("ip4:1", "192.0.2.1")
Dial("ip6:ipv6-icmp", "2001:db8::1")
Dial("ip6:58", "fe80::1%lo0")
For TCP, UDP and IP networks, if the host is empty or a literal unspecified IP address, as in “:80”, “0.0.0.0:80” or “[::]:80” for TCP and UDP, “”, “0.0.0.0” or “::” for IP, the local system is assumed.
For Unix networks, the address must be a file system path.
func DialIP
1func DialIP(network string, laddr, raddr *IPAddr) (*IPConn, error)
DialIP acts like Dial for IP networks.
The network must be an IP network name; see func Dial for details.
If laddr is nil, a local address is automatically chosen. If the IP field of raddr is nil or an unspecified IP address, the local system is assumed.
func DialTCP
1func DialTCP(network string, laddr, raddr *TCPAddr) (*TCPConn, error)
DialTCP acts like Dial for TCP networks.
The network must be a TCP network name; see func Dial for details.
If laddr is nil, a local address is automatically chosen. If the IP field of raddr is nil or an unspecified IP address, the local system is assumed.
func DialTimeout
1func DialTimeout(network, address string, timeout time.Duration) (Conn, error)
DialTimeout acts like Dial but takes a timeout.
The timeout includes name resolution, if required. When using TCP, and the host in the address parameter resolves to multiple IP addresses, the timeout is spread over each consecutive dial, such that each is given an appropriate fraction of the time to connect.
See func Dial for a description of the network and address parameters.
func DialUDP
1func DialUDP(network string, laddr, raddr *UDPAddr) (*UDPConn, error)
DialUDP acts like Dial for UDP networks.
The network must be a UDP network name; see func Dial for details.
If laddr is nil, a local address is automatically chosen. If the IP field of raddr is nil or an unspecified IP address, the local system is assumed.
func DialUnix
1func DialUnix(network string, laddr, raddr *UnixAddr) (*UnixConn, error)
DialUnix acts like Dial for Unix networks.
The network must be a Unix network name; see func Dial for details.
If laddr is non-nil, it is used as the local address for the connection.
func FileConn
1func FileConn(f *os.File) (c Conn, err error)
FileConn returns a copy of the network connection corresponding to the open file f. It is the caller's responsibility to close f when finished. Closing c does not affect f, and closing f does not affect c.
func FileListener
1func FileListener(f *os.File) (ln Listener, err error)
FileListener returns a copy of the network listener corresponding to the open file f. It is the caller's responsibility to close ln when finished. Closing ln does not affect f, and closing f does not affect ln.
func FilePacketConn
1func FilePacketConn(f *os.File) (c PacketConn, err error)
FilePacketConn returns a copy of the packet network connection corresponding to the open file f. It is the caller's responsibility to close f when finished. Closing c does not affect f, and closing f does not affect c.
func InterfaceAddrs
1func InterfaceAddrs() ([]Addr, error)
InterfaceAddrs returns a list of the system's unicast interface addresses.
The returned list does not identify the associated interface; use Interfaces and Interface.Addrs for more detail.
func InterfaceByIndex
1func InterfaceByIndex(index int) (*Interface, error)
InterfaceByIndex returns the interface specified by index.
On Solaris, it returns one of the logical network interfaces sharing the logical data link; for more precision use InterfaceByName.
func InterfaceByName
1func InterfaceByName(name string) (*Interface, error)
InterfaceByName returns the interface specified by name.
func Interfaces
1func Interfaces() ([]Interface, error)
Interfaces returns a list of the system's network interfaces.
func JoinHostPort
1func JoinHostPort(host, port string) string
JoinHostPort combines host and port into a network address of the form "host:port". If host contains a colon, as found in literal IPv6 addresses, then JoinHostPort returns "[host]:port".
See func Dial for a description of the host and port parameters.
func Listen
1func Listen(network, address string) (Listener, error)
Listen announces on the local network address.
The network must be “tcp”, “tcp4”, “tcp6”, “unix” or “unixpacket”.
For TCP networks, if the host in the address parameter is empty or a literal unspecified IP address, Listen listens on all available unicast and anycast IP addresses of the local system. To only use IPv4, use network “tcp4”. The address can use a host name, but this is not recommended, because it will create a listener for at most one of the host’s IP addresses. If the port in the address parameter is empty or “0”, as in “127.0.0.1:” or “[::1]:0”, a port number is automatically chosen. The Addr method of Listener can be used to discover the chosen port.
See func Dial for a description of the network and address parameters.
Listen uses context.Background internally; to specify the context, use ListenConfig.Listen.
func ListenIP
1func ListenIP(network string, laddr *IPAddr) (*IPConn, error)
ListenIP acts like ListenPacket for IP networks.
The network must be an IP network name; see func Dial for details.
If the IP field of laddr is nil or an unspecified IP address, ListenIP listens on all available IP addresses of the local system except multicast IP addresses.
func ListenMulticastUDP
1func ListenMulticastUDP(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)
ListenMulticastUDP acts like ListenPacket for UDP networks but takes a group address on a specific network interface.
The network must be a UDP network name; see func Dial for details.
ListenMulticastUDP listens on all available IP addresses of the local system including the group, multicast IP address. If ifi is nil, ListenMulticastUDP uses the system-assigned multicast interface, although this is not recommended because the assignment depends on platforms and sometimes it might require routing configuration. If the Port field of gaddr is 0, a port number is automatically chosen.
ListenMulticastUDP is just for convenience of simple, small applications. There are golang.org/x/net/ipv4 and golang.org/x/net/ipv6 packages for general purpose uses.
Note that ListenMulticastUDP will set the IP_MULTICAST_LOOP socket option to 0 under IPPROTO_IP, to disable loopback of multicast packets.
func ListenPacket
1func ListenPacket(network, address string) (PacketConn, error)
ListenPacket announces on the local network address.
The network must be “udp”, “udp4”, “udp6”, “unixgram”, or an IP transport. The IP transports are “ip”, “ip4”, or “ip6” followed by a colon and a literal protocol number or a protocol name, as in “ip:1” or “ip:icmp”.
For UDP and IP networks, if the host in the address parameter is empty or a literal unspecified IP address, ListenPacket listens on all available IP addresses of the local system except multicast IP addresses. To only use IPv4, use network “udp4” or “ip4:proto”. The address can use a host name, but this is not recommended, because it will create a listener for at most one of the host’s IP addresses. If the port in the address parameter is empty or “0”, as in “127.0.0.1:” or “[::1]:0”, a port number is automatically chosen. The LocalAddr method of PacketConn can be used to discover the chosen port.
See func Dial for a description of the network and address parameters.
ListenPacket uses context.Background internally; to specify the context, use ListenConfig.ListenPacket.
func ListenTCP
1func ListenTCP(network string, laddr *TCPAddr) (*TCPListener, error)
ListenTCP acts like Listen for TCP networks.
The network must be a TCP network name; see func Dial for details.
If the IP field of laddr is nil or an unspecified IP address, ListenTCP listens on all available unicast and anycast IP addresses of the local system. If the Port field of laddr is 0, a port number is automatically chosen.
func ListenUDP
1func ListenUDP(network string, laddr *UDPAddr) (*UDPConn, error)
ListenUDP acts like ListenPacket for UDP networks.
The network must be a UDP network name; see func Dial for details.
If the IP field of laddr is nil or an unspecified IP address, ListenUDP listens on all available IP addresses of the local system except multicast IP addresses. If the Port field of laddr is 0, a port number is automatically chosen.
func ListenUnix
1func ListenUnix(network string, laddr *UnixAddr) (*UnixListener, error)
ListenUnix acts like Listen for Unix networks.
The network must be “unix” or “unixpacket”.
func ListenUnixgram
1func ListenUnixgram(network string, laddr *UnixAddr) (*UnixConn, error)
ListenUnixgram acts like ListenPacket for Unix networks.
The network must be “unixgram”.
func LookupAddr
1func LookupAddr(addr string) (names []string, err error)
LookupAddr performs a reverse lookup for the given address, returning a list of names mapping to that address.
The returned names are validated to be properly formatted presentation-format domain names. If the response contains invalid names, those records are filtered out and an error will be returned alongside the remaining results, if any.
When using the host C library resolver, at most one result will be returned. To bypass the host resolver, use a custom Resolver.
LookupAddr uses context.Background internally; to specify the context, use Resolver.LookupAddr.
func LookupCNAME
1func LookupCNAME(host string) (cname string, err error)
LookupCNAME returns the canonical name for the given host. Callers that do not care about the canonical name can call LookupHost or LookupIP directly; both take care of resolving the canonical name as part of the lookup.
A canonical name is the final name after following zero or more CNAME records. LookupCNAME does not return an error if host does not contain DNS “CNAME” records, as long as host resolves to address records.
The returned canonical name is validated to be a properly formatted presentation-format domain name.
LookupCNAME uses context.Background internally; to specify the context, use Resolver.LookupCNAME.
func LookupHost
1func LookupHost(host string) (addrs []string, err error)
LookupHost looks up the given host using the local resolver. It returns a slice of that host's addresses.
LookupHost uses context.Background internally; to specify the context, use Resolver.LookupHost.
func LookupIP
1func LookupIP(host string) ([]IP, error)
LookupIP looks up host using the local resolver. It returns a slice of that host's IPv4 and IPv6 addresses.
func LookupMX
1func LookupMX(name string) ([]*MX, error)
LookupMX returns the DNS MX records for the given domain name sorted by preference.
The returned mail server names are validated to be properly formatted presentation-format domain names. If the response contains invalid names, those records are filtered out and an error will be returned alongside the remaining results, if any.
LookupMX uses context.Background internally; to specify the context, use Resolver.LookupMX.
func LookupNS
1func LookupNS(name string) ([]*NS, error)
LookupNS returns the DNS NS records for the given domain name.
The returned name server names are validated to be properly formatted presentation-format domain names. If the response contains invalid names, those records are filtered out and an error will be returned alongside the remaining results, if any.
LookupNS uses context.Background internally; to specify the context, use Resolver.LookupNS.
func LookupPort
1func LookupPort(network, service string) (port int, err error)
LookupPort looks up the port for the given network and service.
LookupPort uses context.Background internally; to specify the context, use Resolver.LookupPort.
func LookupSRV
1func LookupSRV(service, proto, name string) (cname string, addrs []*SRV, err error)
LookupSRV tries to resolve an SRV query of the given service, protocol, and domain name. The proto is "tcp" or "udp". The returned records are sorted by priority and randomized by weight within a priority.
LookupSRV constructs the DNS name to look up following RFC 2782. That is, it looks up _service._proto.name. To accommodate services publishing SRV records under non-standard names, if both service and proto are empty strings, LookupSRV looks up name directly.
The returned service names are validated to be properly formatted presentation-format domain names. If the response contains invalid names, those records are filtered out and an error will be returned alongside the remaining results, if any.
func LookupTXT
1func LookupTXT(name string) ([]string, error)
LookupTXT returns the DNS TXT records for the given domain name.
LookupTXT uses context.Background internally; to specify the context, use Resolver.LookupTXT.
func ParseCIDR
1func ParseCIDR(s string) (IP, *IPNet, error)
ParseCIDR parses s as a CIDR notation IP address and prefix length, like "192.0.2.0/24" or "2001:db8::/32", as defined in RFC 4632 and RFC 4291.
It returns the IP address and the network implied by the IP and prefix length. For example, ParseCIDR(“192.0.2.1/24”) returns the IP address 192.0.2.1 and the network 192.0.2.0/24.
1ipv4Addr, ipv4Net, err := net.ParseCIDR("192.0.2.1/24")
2if err != nil {
3 log.Fatal(err)
4}
5fmt.Println(ipv4Addr)
6fmt.Println(ipv4Net)
7
8ipv6Addr, ipv6Net, err := net.ParseCIDR("2001:db8:a0b:12f0::1/32")
9if err != nil {
10 log.Fatal(err)
11}
12fmt.Println(ipv6Addr)
13fmt.Println(ipv6Net)
Output
192.0.2.1 192.0.2.0/24 2001:db8:a0b:12f0::1 2001:db8::/32
func ParseMAC
1func ParseMAC(s string) (hw HardwareAddr, err error)
ParseMAC parses s as an IEEE 802 MAC-48, EUI-48, EUI-64, or a 20-octet IP over InfiniBand link-layer address using one of the following formats:
00:00:5e:00:53:01
02:00:5e:10:00:00:00:01
00:00:00:00:fe:80:00:00:00:00:00:00:02:00:5e:10:00:00:00:01
00-00-5e-00-53-01
02-00-5e-10-00-00-00-01
00-00-00-00-fe-80-00-00-00-00-00-00-02-00-5e-10-00-00-00-01
0000.5e00.5301
0200.5e10.0000.0001
0000.0000.fe80.0000.0000.0000.0200.5e10.0000.0001
func Pipe
1func Pipe() (Conn, Conn)
Pipe creates a synchronous, in-memory, full duplex network connection; both ends implement the Conn interface. Reads on one end are matched with writes on the other, copying data directly between the two; there is no internal buffering.
func ResolveIPAddr
1func ResolveIPAddr(network, address string) (*IPAddr, error)
ResolveIPAddr returns an address of IP end point.
The network must be an IP network name.
If the host in the address parameter is not a literal IP address, ResolveIPAddr resolves the address to an address of IP end point. Otherwise, it parses the address as a literal IP address. The address parameter can use a host name, but this is not recommended, because it will return at most one of the host name’s IP addresses.
See func Dial for a description of the network and address parameters.
func ResolveTCPAddr
1func ResolveTCPAddr(network, address string) (*TCPAddr, error)
ResolveTCPAddr returns an address of TCP end point.
The network must be a TCP network name.
If the host in the address parameter is not a literal IP address or the port is not a literal port number, ResolveTCPAddr resolves the address to an address of TCP end point. Otherwise, it parses the address as a pair of literal IP address and port number. The address parameter can use a host name, but this is not recommended, because it will return at most one of the host name’s IP addresses.
See func Dial for a description of the network and address parameters.
func ResolveUDPAddr
1func ResolveUDPAddr(network, address string) (*UDPAddr, error)
ResolveUDPAddr returns an address of UDP end point.
The network must be a UDP network name.
If the host in the address parameter is not a literal IP address or the port is not a literal port number, ResolveUDPAddr resolves the address to an address of UDP end point. Otherwise, it parses the address as a pair of literal IP address and port number. The address parameter can use a host name, but this is not recommended, because it will return at most one of the host name’s IP addresses.
See func Dial for a description of the network and address parameters.
func ResolveUnixAddr
1func ResolveUnixAddr(network, address string) (*UnixAddr, error)
ResolveUnixAddr returns an address of Unix domain socket end point.
The network must be a Unix network name.
See func Dial for a description of the network and address parameters.
func SplitHostPort
1func SplitHostPort(hostport string) (host, port string, err error)
SplitHostPort splits a network address of the form "host:port", "host%zone:port", "[host]:port" or "[host%zone]:port" into host or host%zone and port.
A literal IPv6 address in hostport must be enclosed in square brackets, as in “[::1]:80”, “[::1%lo0]:80”.
See func Dial for a description of the hostport parameter, and host and port results.
func IPv4
1func IPv4(a, b, c, d byte) IP
IPv4 returns the IP address (in 16-byte form) of the IPv4 address a.b.c.d.
1fmt.Println(net.IPv4(8, 8, 8, 8))
Output
8.8.8.8
func ParseIP
1func ParseIP(s string) IP
ParseIP parses s as an IP address, returning the result. The string s can be in IPv4 dotted decimal ("192.0.2.1"), IPv6 ("2001:db8::68"), or IPv4-mapped IPv6 ("::ffff:192.0.2.1") form. If s is not a valid textual representation of an IP address, ParseIP returns nil.
1fmt.Println(net.ParseIP("192.0.2.1"))
2fmt.Println(net.ParseIP("2001:db8::68"))
3fmt.Println(net.ParseIP("192.0.2"))
Output
192.0.2.1 2001:db8::68
func CIDRMask
1func CIDRMask(ones, bits int) IPMask
CIDRMask returns an IPMask consisting of 'ones' 1 bits followed by 0s up to a total length of 'bits' bits. For a mask of this form, CIDRMask is the inverse of IPMask.Size.
1fmt.Println(net.CIDRMask(31, 32))
2
3fmt.Println(net.CIDRMask(64, 128))
Output
fffffffe ffffffffffffffff0000000000000000