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