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( or
expression).
colname::inet
Table 9.32. cidr and inet Functions
| Function | Return Type | Description | Example | Result |
|---|---|---|---|---|
|
inet |
broadcast address for network | broadcast('192.168.1.5/24') |
192.168.1.255/24 |
|
text |
extract IP address as text | host('192.168.1.5/24') |
192.168.1.5 |
|
int |
extract netmask length | masklen('192.168.1.5/24') |
24 |
|
inet |
set netmask length for inet value |
set_masklen('192.168.1.5/24', 16) |
192.168.1.5/16 |
|
inet |
construct netmask for network | netmask('192.168.1.5/24') |
255.255.255.0 |
|
inet |
construct host mask for network | hostmask('192.168.23.20/30') |
0.0.0.3 |
|
cidr |
extract network part of address | network('192.168.1.5/24') |
192.168.1.0/24 |
|
text |
extract IP address and netmask length as text | text(inet '192.168.1.5') |
192.168.1.5/32 |
|
text |
abbreviated display format as text | abbrev(cidr '10.1.0.0/16') |
10.1/16 |
|
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
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
trunc(macaddr)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 |
|---|---|---|---|---|
|
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.