9.12. Функции и операторы для работы с сетевыми адресами
В Таблица 9.36 показаны операторы, работающие с типами cidr и inet. Операторы <<, <<=, >>, >>= и && проверяют включения подсетей, рассматривая только биты сети в обоих адресах (игнорируя биты узлов) и определяя, идентична ли одна сеть другой или её подсети.
Таблица 9.36. Операторы для типов cidr и inet
| Оператор | Описание | Пример | 
|---|---|---|
< | меньше | inet '192.168.1.5' < inet '192.168.1.6' | 
<= | меньше или равно | inet '192.168.1.5' <= inet '192.168.1.5' | 
= | равно | inet '192.168.1.5' = inet '192.168.1.5' | 
>= | больше или равно | inet '192.168.1.5' >= inet '192.168.1.5' | 
> | больше | inet '192.168.1.5' > inet '192.168.1.4' | 
<> | не равно | inet '192.168.1.5' <> inet '192.168.1.4' | 
<< | содержится в | inet '192.168.1.5' << inet '192.168.1/24' | 
<<= | равно или содержится в | inet '192.168.1/24' <<= inet '192.168.1/24' | 
>> | содержит | inet '192.168.1/24' >> inet '192.168.1.5' | 
>>= | равно или содержит | inet '192.168.1/24' >>= inet '192.168.1/24' | 
&& | содержит или содержится в | inet '192.168.1/24' && inet '192.168.1.80/28' | 
~ | битовый NOT | ~ inet '192.168.1.6' | 
& | битовый AND | inet '192.168.1.6' & inet '0.0.0.255' | 
| | битовый OR | inet '192.168.1.6' | inet '0.0.0.255' | 
+ | сложение | inet '192.168.1.6' + 25 | 
- | вычитание | inet '192.168.1.43' - 36 | 
- | вычитание | inet '192.168.1.43' - inet '192.168.1.19' | 
В Таблице 9.37 перечислены функции, работающие с типами cidr и inet. Функции abbrev, host и text предназначены в основном для вывода данных в альтернативных форматах.
Таблица 9.37. Функции для типов cidr и inet
Любое значение cidr можно привести к типу inet, явно или нет; поэтому все функции, показанные выше с типом inet, также будут работать со значениями cidr. (Некоторые из функций указаны отдельно для типов inet и cidr, потому что их поведение с разными типами различается.) Кроме того, значение inet тоже можно привести к типу cidr. При этом все биты справа от сетевой маски просто обнуляются, чтобы значение стало допустимым для типа cidr. К типам inet и cidr можно привести и обычные текстовые значения, используя обычный синтаксис, например: inet( или выражение).столбец::cidr
В Таблице 9.38 приведена функция, предназначенная для работы с типом macaddr. Функция  возвращает MAC-адрес, последние 3 байта в котором равны 0. Это может быть полезно для вычисления префикса, определяющего производителя.trunc(macaddr)
Таблица 9.38. Функции macaddr
Тип macaddr также поддерживает стандартные реляционные операторы лексической сортировки (>, <= и т. д.) и операторы битовой арифметики (~, & и |), соответствующие операциям NOT, AND и OR.
В Таблице 9.39 приведены функции, предназначенные для работы с типом macaddr8. Функция  возвращает MAC-адрес, последние 5 байт в котором равны нулю. Это может быть полезно для вычисления префикса, определяющего производителя.trunc(macaddr8)
Таблица 9.39. Функции macaddr8
Тип macaddr8 также поддерживает стандартные реляционные операторы лексической сортировки (>, <= и т. д.) и операторы битовой арифметики (~, & и |), соответствующие операциям NOT, AND и OR.
