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")