go: cuelang.org/go/pkg/net Index | Files

package net

import "cuelang.org/go/pkg/net"

Package net provides net-related type definitions.

The IP-related defintions can be represented as either a string or a list of byte values. To allow one format over an other these types can be further constraint using string or [...]. For instance,

// multicast defines a multicast IP address in string form.
multicast: net.MulticastIP & string

// unicast defines a global unicast IP address in list form.
unicast: net.GlobalUnicastIP & [...]

Package net defines net-related types.

Index

Package Files

doc.go host.go ip.go

Constants

const (
    IPv4len = 4
    IPv6len = 16
)

IP address lengths (bytes).

func FQDN Uses

func FQDN(s string) bool

FQDN reports whether is is a valid fully qualified domain name.

FQDN allows only ASCII characters as prescribed by RFC 1034 (A-Z, a-z, 0-9 and the hyphen).

func GlobalUnicastIP Uses

func GlobalUnicastIP(ip cue.Value) bool

GlobalUnicastIP reports whether ip is a global unicast address.

The identification of global unicast addresses uses address type identification as defined in RFC 1122, RFC 4632 and RFC 4291 with the exception of IPv4 directed broadcast addresses. It returns true even if ip is in IPv4 private address space or local IPv6 unicast address space.

func IP Uses

func IP(ip cue.Value) bool

IP reports whether s is a valid IPv4 or IPv6 address.

The address may be a string or list of bytes.

func IPString Uses

func IPString(ip cue.Value) (string, error)

IPString returns the string form of the IP address ip. It returns one of 4 forms:

- "<nil>", if ip has length 0 - dotted decimal ("192.0.2.1"), if ip is an IPv4 or IP4-mapped IPv6 address - IPv6 ("2001:db8::1"), if ip is a valid IPv6 address - the hexadecimal form of ip, without punctuation, if no other cases apply

func IPv4 Uses

func IPv4(ip cue.Value) bool

IPv4 reports whether s is a valid IPv4 address.

The address may be a string or list of bytes.

func InterfaceLocalMulticastIP Uses

func InterfaceLocalMulticastIP(ip cue.Value) bool

InterfaceLocalMulticastIP reports whether ip is an interface-local multicast address.

func JoinHostPort Uses

func JoinHostPort(host, port cue.Value) (string, error)

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 LinkLocalMulticastIP Uses

func LinkLocalMulticastIP(ip cue.Value) bool

LinkLocalMulticast reports whether ip is a link-local multicast address.

func LinkLocalUnicastIP Uses

func LinkLocalUnicastIP(ip cue.Value) bool

LinkLocalUnicastIP reports whether ip is a link-local unicast address.

func LoopbackIP Uses

func LoopbackIP(ip cue.Value) bool

LoopbackIP reports whether ip is a loopback address.

func MulticastIP Uses

func MulticastIP(ip cue.Value) bool

MulticastIP reports whether ip is a multicast address.

func ParseIP Uses

func ParseIP(s string) ([]uint, error)

ParseIP parses s as an IP address, returning the result. The string s can be in dotted decimal ("192.0.2.1") or IPv6 ("2001:db8::68") form. If s is not a valid textual representation of an IP address, ParseIP returns nil.

func SplitHostPort Uses

func SplitHostPort(s string) (hostport []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".

func ToIP16 Uses

func ToIP16(ip cue.Value) ([]uint, error)

ToIP16 converts a given IP address, which may be a string or a list, to its 16-byte representation.

func ToIP4 Uses

func ToIP4(ip cue.Value) ([]uint, error)

ToIP4 converts a given IP address, which may be a string or a list, to its 4-byte representation.

func UnspecifiedIP Uses

func UnspecifiedIP(ip cue.Value) bool

UnspecifiedIP reports whether ip is an unspecified address, either the IPv4 address "0.0.0.0" or the IPv6 address "::".

Package net imports 6 packages (graph). Updated 2019-12-07. Refresh now. Tools for package owners.