net

package
v0.16.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package net provides net-related type definitions.

The IP-related definitions 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

Constants

View Source
const (
	IPv4len = 4
	IPv6len = 16
)

IP address lengths (bytes).

Variables

This section is empty.

Functions

func AbsURL added in v0.11.0

func AbsURL(s string) (bool, error)

AbsURL validates that s is an absolute URL. Note: this does also allow non-ASCII characters.

func AddIP added in v0.15.0

func AddIP(ip cue.Value, offset *big.Int) (string, error)

AddIP adds a numerical offset to a given IP address. The address can be provided as a string, byte array, or CIDR subnet notation. It returns the resulting IP address or CIDR subnet notation as a string.

func AddIPCIDR added in v0.15.0

func AddIPCIDR(ip cue.Value, offset *big.Int) (string, error)

AddIPCIDR adds a numerical offset to a given CIDR subnet string, returning a CIDR string.

func CompareIP added in v0.16.0

func CompareIP(ip1, ip2 cue.Value) (int, error)

CompareIP compares two IP addresses and returns an integer: -1 if ip1 sorts before ip2, 0 if they are equal, and +1 if ip1 sorts after ip2. IPv4 addresses sort before IPv6 addresses.

The addresses may be strings or lists of bytes.

func FQDN

func FQDN(s string) bool

FQDN reports whether 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

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

func IP(ip cue.Value) bool

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

The address may be a string or list of bytes.

func IPCIDR added in v0.4.3

func IPCIDR(ip cue.Value) (bool, error)

IPCIDR reports whether ip is a valid IPv4 or IPv6 address with CIDR subnet notation.

The address may be a string or list of bytes.

func IPString

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

func IPv4(ip cue.Value) bool

IPv4 reports whether ip is a valid IPv4 address.

The address may be a string or list of bytes.

func IPv6 added in v0.8.0

func IPv6(ip cue.Value) bool

IPv6 reports whether ip is a valid IPv6 address.

The address may be a string or list of bytes.

func InCIDR added in v0.16.0

func InCIDR(ip, cidr cue.Value) (bool, error)

InCIDR reports whether an IP address is contained a CIDR subnet string.

func InterfaceLocalMulticastIP

func InterfaceLocalMulticastIP(ip cue.Value) bool

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

func JoinHostPort

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

func LinkLocalMulticastIP(ip cue.Value) bool

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

func LinkLocalUnicastIP

func LinkLocalUnicastIP(ip cue.Value) bool

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

func LoopbackIP

func LoopbackIP(ip cue.Value) bool

LoopbackIP reports whether ip is a loopback address.

func MulticastIP

func MulticastIP(ip cue.Value) bool

MulticastIP reports whether ip is a multicast address.

func ParseIP

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 an error.

func PathEscape added in v0.6.0

func PathEscape(s string) string

PathEscape escapes the string so it can be safely placed inside a URL path segment, replacing special characters (including /) with %XX sequences as needed.

func PathUnescape added in v0.6.0

func PathUnescape(s string) (string, error)

PathUnescape does the inverse transformation of PathEscape, converting each 3-byte encoded substring of the form "%AB" into the hex-decoded byte 0xAB. It returns an error if any % is not followed by two hexadecimal digits.

PathUnescape is identical to QueryUnescape except that it does not unescape '+' to ' ' (space).

func QueryEscape added in v0.6.0

func QueryEscape(s string) string

QueryEscape escapes the string so it can be safely placed inside a URL query.

func QueryUnescape added in v0.6.0

func QueryUnescape(s string) (string, error)

QueryUnescape does the inverse transformation of QueryEscape, converting each 3-byte encoded substring of the form "%AB" into the hex-decoded byte 0xAB. It returns an error if any % is not followed by two hexadecimal digits.

func SplitHostPort

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 ToIP4

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 ToIP16

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 URL added in v0.11.0

func URL(s string) (bool, error)

URL validates that s is a valid relative or absolute URL. Note: this does also allow non-ASCII characters.

func UnspecifiedIP

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 "::".

Types

type ParsedCIDR added in v0.16.0

type ParsedCIDR struct {
	PrefixMask string `json:"prefix_mask"`
	PrefixLen  int    `json:"prefix_len"`
	PrefixAddr string `json:"prefix_addr"`
	// BroadcastAddr is only set for IPv4 CIDRs.
	BroadcastAddr string `json:"broadcast_addr,omitempty"`
}

ParsedCIDR holds the parsed components of a CIDR notation string.

func ParseCIDR added in v0.16.0

func ParseCIDR(s string) (*ParsedCIDR, error)

ParseCIDR parses a CIDR notation string and returns its components: prefix_mask (e.g. "255.255.255.0"), prefix_len (e.g. 24), prefix_addr (e.g. "10.20.30.0"), and broadcast_addr (e.g. "10.20.30.255"). broadcast_addr is only set for IPv4 CIDRs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL