9.11. Network Address Functions and Operators

Top  Previous  Next

9.11. Network Address Functions and Operators

Table 9.31, “cidr and inet Operators” shows the operators available for the cidr and inet types. The operators <<, <<=, >>, and >>= test for subnet inclusion. They consider only the network parts of the two addresses, ignoring any host part, and determine whether one network part is identical to or a subnet of the other.

Table 9.31. cidr and inet Operators

Operator

Description

Example

<

is less than

inet '192.168.1.5' < inet '192.168.1.6'

<=

is less than or equal

inet '192.168.1.5' <= inet '192.168.1.5'

=

equals

inet '192.168.1.5' = inet '192.168.1.5'

>=

is greater or equal

inet '192.168.1.5' >= inet '192.168.1.5'

>

is greater than

inet '192.168.1.5' > inet '192.168.1.4'

<>

is not equal

inet '192.168.1.5' <> inet '192.168.1.4'

<<

is contained within

inet '192.168.1.5' << inet '192.168.1/24'

<<=

is contained within or equals

inet '192.168.1/24' <<= inet '192.168.1/24'

>>

contains

inet '192.168.1/24' >> inet '192.168.1.5'

>>=

contains or equals

inet '192.168.1/24' >>= inet '192.168.1/24'

Table 9.32, “cidr and inet Functions” shows the functions available for use with the cidr and inet types. The host, text, and abbrev functions are primarily intended to offer alternative display formats. You can cast a text value to inet using normal casting syntax: inet(expression) or colname::inet.

Table 9.32.

cidr

and inet Functions

Function

Return Type

Description

Example

Result

broadcast(inet)

inet

broadcast address for network

broadcast('192.168.1.5/24')

192.168.1.255/24

host(inet)

text

extract IP address as text

host('192.168.1.5/24')

192.168.1.5

masklen(inet)

int

extract netmask length

masklen('192.168.1.5/24')

24

set_masklen(inet, int)

inet

set netmask length for inet value

set_masklen('192.168.1.5/24', 16)

192.168.1.5/16

netmask(inet)

inet

construct netmask for network

netmask('192.168.1.5/24')

255.255.255.0

hostmask(inet)

inet

construct host mask for network

hostmask('192.168.23.20/30')

0.0.0.3

network(inet)

cidr

extract network part of address

network('192.168.1.5/24')

192.168.1.0/24

text(inet)

text

extract IP address and netmask length as text

text(inet '192.168.1.5')

192.168.1.5/32

abbrev(inet)

text

abbreviated display format as text

abbrev(cidr '10.1.0.0/16')

10.1/16

family(inet)

int

extract family of address; 4 for IPv4, 6 for IPv6

family('::1')

6

Table 9.33, “macaddr Functions” shows the functions available for use with the macaddr type. The function trunc(macaddr) returns a MAC address with the last 3 bytes set to zero. This can be used to associate the remaining prefix with a manufacturer. The directory contrib/mac in the source distribution contains some utilities to create and maintain such an association table.

Table 9.33. macaddr Functions

Function

Return Type

Description

Example

Result

trunc(macaddr)

macaddr

set last 3 bytes to zero

trunc(macaddr '12:34:56:78:90:ab')

12:34:56:00:00:00

The macaddr type also supports the standard relational operators (>, <=, etc.) for lexicographical ordering.