×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

2.6.12. Функции и операторы для сетевых адресов

Типы сетевых IP-адресов, cidr и inet, поддерживают стандартные операторы сравнения, перечисленные в Таблица 2.6.1 а также специализированные операторы и функции, приведенные в Таблица 2.6.39 и Таблица 2.6.40.

Любое cidr значение может быть приведено к типу inet неявно; следовательно, операторы и функции, указанные ниже как работающие с типом inet также применимы к значениям типа cidr values. (Наличие отдельных функций для типов inet и cidrобусловлено тем, что логика обработки для этих двух случаев должна различаться.) Кроме того, допускается явное приведение значения типа inet значение в cidr. . При выполнении данной операции любые биты справа от маски сети неявно обнуляются для формирования корректного значения cidr значения.

Таблица 2.6.39. Операторы для работы с IP-адресами

Оператор

Описание

Примеры

inet << inetboolean

Является ли подсеть строго входящей в другую подсеть? Данный оператор, как и четыре следующих, проверяет вхождение подсети. Они учитывают только сетевые части двух адресов (игнорируя любые биты справа от масок сетей) и определяют, является ли одна сеть идентичной другой сети или её подсетью.

inet '192.168.1.5' << inet '192.168.1/24't

inet '192.168.0.5' << inet '192.168.1/24'f

inet '192.168.1/24' << inet '192.168.1/24'f

inet <<= inetboolean

Содержится ли подсеть в другой подсети или равна ей?

inet '192.168.1/24' <<= inet '192.168.1/24't

inet >> inetboolean

Содержит ли подсеть строго другую подсеть?

inet '192.168.1/24' >> inet '192.168.1.5't

inet >>= inetboolean

Содержит ли подсеть другую подсеть или равна ей?

inet '192.168.1/24' >>= inet '192.168.1/24't

inet && inetboolean

Содержит ли одна из подсетей другую или равна ей?

inet '192.168.1/24' && inet '192.168.1.80/28't

inet '192.168.1/24' && inet '192.168.2.0/28'f

~ inetinet

Выполняет операцию поразрядного отрицания (NOT).

~ inet '192.168.1.6'63.87.254.249

inet & inetinet

Выполняет операцию поразрядного И (AND).

inet '192.168.1.6' & inet '0.0.0.255'0.0.0.6

inet | inetinet

Выполняет операцию поразрядного ИЛИ (OR).

inet '192.168.1.6' | inet '0.0.0.255'192.168.1.255

inet + bigintinet

Добавляет смещение к адресу.

inet '192.168.1.6' + 25192.168.1.31

bigint + inetinet

Добавляет смещение к адресу.

200 + inet '::ffff:fff0:1'::ffff:255.240.0.201

inet - bigintinet

Вычитает смещение из адреса.

inet '192.168.1.43' - 36192.168.1.7

inet - inetbigint

Вычисляет разность между двумя адресами.

inet '192.168.1.43' - inet '192.168.1.19'24

inet '::1' - inet '::ffff:1'-4294901760


Таблица 2.6.40. Функции для работы с IP-адресами

Функция

Описание

Примеры

abbrev ( inet ) → text

Формирует сокращенное текстовое представление данных. (Полученный результат идентичен тому, который inet функция вывода генерирует; он считается «сокращенным» лишь в сравнении с результатом явного приведения к типу text, которое по историческим причинам никогда не отсекает часть, содержащую маску сети.)

abbrev(inet '10.1.0.0/32')10.1.0.0

abbrev ( cidr ) → text

Формирует сокращенное текстовое представление данных. (Сокращение выполняется путем отбрасывания нулевых октетов справа от маски сети; другие примеры представлены в Таблица 2.5.22.)

abbrev(cidr '10.1.0.0/16')10.1/16

broadcast ( inet ) → inet

Вычисляет широковещательный адрес для сети указанного адреса.

broadcast(inet '192.168.1.5/24')192.168.1.255/24

family ( inet ) → integer

Функция family возвращает семейство протоколов для указанного адреса: 4 для протокола IPv4, 6 для протокола IPv6.

family(inet '::1')6

host ( inet ) → text

Функция host возвращает IP-адрес в виде текстовой строки без учета маски сети.

host(inet '192.168.1.0/24')192.168.1.0

hostmask ( inet ) → inet

Функция hostmask вычисляет маску узла для сети, к которой принадлежит адрес.

hostmask(inet '192.168.23.20/30')0.0.0.3

inet_merge ( inet, inet ) → cidr

Функция inet_merge вычисляет минимальную сеть, охватывающую обе заданные сети.

inet_merge(inet '192.168.1.5/24', inet '192.168.2.5/24')192.168.0.0/22

inet_same_family ( inet, inet ) → boolean

Функция inet_same_family проверяет принадлежность адресов к одному и тому же семейству протоколов IP.

inet_same_family(inet '192.168.1.5/24', inet '::1')f

masklen ( inet ) → integer

Функция masklen возвращает длину маски сети, выраженную в битах.

masklen(inet '192.168.1.5/24')24

netmask ( inet ) → inet

Вычисляет сетевую маску для сети указанного адреса.

netmask(inet '192.168.1.5/24')255.255.255.0

network ( inet ) → cidr

Возвращает сетевую составляющую адреса, обнуляя все значения справа от сетевой маски. (Это эквивалентно приведению значения к типу cidr.)

network(inet '192.168.1.5/24')192.168.1.0/24

set_masklen ( inet, integer ) → inet

Устанавливает длину сетевой маски для значения типа inet соответствующее значению. Адресная часть при этом не изменяется.

set_masklen(inet '192.168.1.5/24', 16)192.168.1.5/16

set_masklen ( cidr, integer ) → cidr

Устанавливает длину сетевой маски для значения типа cidr соответствующее значению. Биты адреса справа от новой сетевой маски устанавливаются в ноль.

set_masklen(cidr '192.168.1.0/24', 16)192.168.0.0/16

text ( inet ) → text

Возвращает IP-адрес в полном формате и длину сетевой маски в виде текстовой строки. (Данная операция дает тот же результат, что и явное приведение к типу text.)

text(inet '192.168.1.5')192.168.1.5/32


Подсказка

Данный abbrev, host, и text функции в первую очередь предназначены для предоставления альтернативных форматов отображения IP-адресов.

Типы данных MAC-адресов, macaddr и macaddr8, поддерживают стандартные операторы сравнения, перечисленные в Таблица 2.6.1 а также специализированные функции, приведенные в Таблица 2.6.41. Кроме того, для них поддерживаются побитовые логические операторы ~, & и | (NOT, AND и OR), как было показано выше для IP-адресов.

Таблица 2.6.41. Функции для работы с MAC-адресами

Функция

Описание

Примеры

trunc ( macaddr ) → macaddr

Устанавливает последние 3 байта адреса в ноль. Оставшийся префикс может быть сопоставлен с конкретным производителем (с использованием данных, не входящих в Digital Q.DataBase).

trunc(macaddr '12:34:56:78:90:ab')12:34:56:00:00:00

trunc ( macaddr8 ) → macaddr8

Устанавливает последние 5 байтов адреса в ноль. Оставшийся префикс может быть сопоставлен с конкретным производителем (с использованием данных, не входящих в Digital Q.DataBase).

trunc(macaddr8 '12:34:56:78:90:ab:cd:ef')12:34:56:00:00:00:00:00

macaddr8_set7bit ( macaddr8 ) → macaddr8

Устанавливает седьмой бит адреса в единицу, формируя так называемый модифицированный формат EUI-64 для включения в IPv6-адрес.

macaddr8_set7bit(macaddr8 '00:34:56:ab:cd:ef')02:34:56:ff:fe:ab:cd:ef


Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению