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.