9.12. Функции и операторы для работы с сетевыми адресами
В Таблица 9.34 показаны операторы, работающие с типами cidr и inet. Операторы <<, <<=, >>, >>= и && проверяют включения подсетей, рассматривая только биты сети в обоих адресах (игнорируя биты узлов) и определяя, идентична ли одна сеть другой или её подсети.
Таблица 9.34. Операторы для типов 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.35 перечислены функции, работающие с типами cidr и inet. Функции abbrev, host и text предназначены в основном для вывода данных в альтернативных форматах.
Таблица 9.35. Функции для типов cidr и inet
Любое значение cidr можно привести к типу inet, явно или нет; поэтому все функции, показанные выше с типом inet, также будут работать со значениями cidr. (Некоторые из функций указаны отдельно для типов inet и cidr, потому что их поведение с разными типами различается.) Кроме того, значение inet тоже можно привести к типу cidr. При этом все биты справа от сетевой маски просто обнуляются, чтобы значение стало допустимым для типа cidr. К типам inet и cidr можно привести и обычные текстовые значения, используя обычный синтаксис, например: inet( или выражение).столбец::cidr
В Таблице 9.36 приведена функция, предназначенная для работы с типом macaddr. Функция возвращает MAC-адрес, последние 3 байта в котором равны 0. Это может быть полезно для вычисления префикса, определяющего производителя.trunc(macaddr)
Таблица 9.36. Функции macaddr
Тип macaddr также поддерживает стандартные реляционные операторы лексической сортировки (>, <= и т. д.) и операторы битовой арифметики (~, & и |), соответствующие операциям NOT, AND и OR.