Доступные версии документации

Проверка адреса по адресной маске

Функция

Проверка принадлежности адреса к указанной сети по адресной маске.

Адресная маска – битовая маска, используемая для выбора бит из IP-адреса с целью адресации подсети. Маска имеет размер 32 бита и выделяет сетевую часть IP-адреса и один или несколько бит локальной части адреса.

Спецификация
 
Синтаксические правила
  1. <Байтовое выражение 1> должно иметь тип BYTE(5), <байтовое выражение 2> и <маска> должны иметь тип BYTE(4).

Возвращаемое значение
  1. Значение TRUE, если CIDR IP-адрес из <байтового выражения 1> идентичен по <маске> адресу <байтового выражения 2>, FALSE – в противном случае. Идентификация адресов выполняется путем побитового сравнения <байтового выражения 1> и <байтового выражения 2>. Порядковые номера сравниваемых бит соответствуют порядковым номерам нулевых бит в <маске>.

  2. Тип возвращаемого значения – BOOLEAN.

Примеры
select cidrmatch(cidrtoraw('80.82.32.1/32'),
cast cidrtoraw('80.82.32.00/10')  as byte(4),
cast hex('000000ff')  as byte(4));

или

select cidrmatch(cidrtoraw('80.82.32.1/32'),
cast cidrtoraw('80.82.32.00/10')  as byte(4),
cast cidrtoraw('0.0.0.255/8')  as byte(4));
|T|
create or replace table tab2 (cidr byte(5));
insert into tab2 values(hex('8082320010'));
select cidrmatch( cidr, hex('80500000'), hex('00ffffff') ) from tab2;
| T| 
select cidrmatch( cidr, hex('80500000'), hex('ff000000') ) from tab2;
| F| 
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter