9.12. Функции и операторы для работы с сетевыми адресами
Типы cidr и inet, предназначенные для сетевых IP-адресов, поддерживают обычные операторы сравнения, показанные в Таблице 9.1, а также специализированные операторы и функции, показанные в Таблице 9.38 и Таблице 9.39.
Любое значение cidr можно привести к типу inet неявно, поэтому все функции, показанные выше с типом inet, также будут работать со значениями cidr. (То, что некоторые из функций описаны для типов inet и cidr в отдельности, объясняется тем, что их поведение с разными типами различается.) Кроме того, значение inet тоже можно привести к типу cidr. При этом все биты справа от сетевой маски просто обнуляются, чтобы значение стало допустимым для типа cidr.
Таблица 9.38. Операторы для работы с IP-адресами
| Оператор Описание Пример(ы) | 
|---|
| 
 Первая подсеть содержится во второй и не равна ей? Этот оператор и следующие четыре проверяют вхождение одной сети в другую или их равенство, при этом рассматривая в адресах только компонент сети (биты справа от сетевой маски игнорируются). 
 
 
 | 
| 
 Первая подсеть содержится во второй или равна ей? 
 | 
| 
 Первая подсеть содержит вторую подсеть и не равна ей? 
 | 
| 
 Первая подсеть содержит вторую подсеть или равна ей? 
 | 
| 
 Одна из двух подсетей содержит другую или равна ей? 
 
 | 
| 
 Вычисляет результат побитового НЕ. 
 | 
| 
 Вычисляет результат побитового И. 
 | 
| 
 Вычисляет результат побитового ИЛИ. 
 | 
| 
 Добавляет смещение к адресу. 
 | 
| 
 Добавляет смещение к адресу. 
 | 
| 
 Вычитает смещение из адреса. 
 | 
| 
 Вычисляет разность двух адресов. 
 
 | 
Таблица 9.39. Функции для работы с IP-адресами
| Функция Описание Пример(ы) | 
|---|
| Выводит адрес в сокращённом текстовом виде. (Результат не отличается от того, что даёт функция вывода  
 | 
| 
 Выводит адрес в сокращённом текстовом виде. (Сокращение заключается в отбрасывании полностью нулевых октетов в конце сетевой маски; другие примеры приведены в Таблице 8.22.) 
 | 
| Вычисляет широковещательный адрес для сети. 
 | 
| Выдаёт семейство адреса:  
 | 
| Выдаёт IP-адрес в текстовом виде, опуская маску сети. 
 | 
| Вычисляет маску узла для сети в заданном адресе. 
 | 
|   Вычисляет наименьшую сеть, содержащую обе заданные сети. 
 | 
|   Проверяет, относятся ли адреса к одному семейству IP? 
 | 
| Выдаёт длину маски сети в битах. 
 | 
| Вычисляет маску сети для заданного адреса. 
 | 
| Выдаёт компонент сети для заданного адреса, обнуляя все биты справа от маски сети. (Это равнозначно приведению значения к типу  
 | 
|   Задаёт размер маски сети для значения  
 | 
| 
 Задаёт размер маски сети для значения  
 | 
| Выдаёт несокращённый IP-адрес и размер маски в виде текста. (Такой же результат получается при явном приведении к типу  
 | 
Подсказка
Функции abbrev, host и text предназначены в основном для вывода IP-адресов в альтернативных текстовых форматах.
Типы MAC-адресов macaddr и macaddr8 поддерживают обычные операторы сравнения, показанные в Таблице 9.1, a также специализированные функции, показанные в Таблице 9.40. Кроме того, они поддерживают битовые логические операторы: ~, & и | (НЕ, И, ИЛИ), показанные выше для IP-адресов.
Таблица 9.40. Функции для работы с MAC-адресами