Проверка принадлежности адреса к указанной сети по адресной маске.
Адресная маска – битовая маска, используемая для выбора бит из IP-адреса с целью адресации подсети. Маска имеет размер 32 бита и выделяет сетевую часть IP-адреса и один или несколько бит локальной части адреса.
::=
::=
<Байтовое выражение 1>
должно иметь тип BYTE(5), <байтовое выражение 2>
и <маска>
должны иметь тип BYTE(4).
Значение TRUE
, если CIDR IP-адрес из <байтового выражения 1>
идентичен по <маске>
адресу <байтового выражения 2>
, FALSE – в противном случае. Идентификация адресов выполняется путем побитового сравнения <байтового выражения 1>
и <байтового выражения 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|