Skip to main content
Version: v1.4.0

network_of

Function

network_of the network of an IP

Synopsis

network_of(val: ip [, mask: ip|int|uint]) -> net

Description

The network_of function returns the network of the IP address given by val as determined by the optional mask. If mask is an integer rather than an IP address, it is presumed to be a network prefix of the indicated length. If mask is omitted, then a class A (8 bit), B (16 bit), or C (24 bit) network is inferred from val, which in this case, must be an IPv4 address.

Examples

Compute the network address of an IP using an ip mask argument:

echo '10.1.2.129' | zq -z 'yield network_of(this, 255.255.255.128)' -

=>

10.1.2.128/25

Compute the network address of an IP given an integer prefix argument:

echo '10.1.2.129' | zq -z 'yield network_of(this, 25)' -

=>

10.1.2.128/25

Compute the network address implied by IP classful addressing:

echo '10.1.2.129' | zq -z 'yield network_of(this)' -

=>

10.0.0.0/8

The network of a value that is not an IP is an error:

echo 1 | zq -z 'yield network_of(this)' -

=>

error("network_of: not an IP")

Network masks must be contiguous:

echo '10.1.2.129' | zq -z 'yield network_of(this, 255.255.128.255)' -

=>

error("network_of: mask 255.255.128.255 is non-contiguous")