Перейти к содержимому
Последнее обновление

IS_IPV4_COMPAT

Описание​

Проверяет, является ли адрес IPv6 совместимым с IPv4. Адреса, совместимые с IPv4, — это специальный формат адресов IPv6, используемый для представления адресов IPv4 в сетях IPv6.

Синтаксис​

IS_IPV4_COMPAT(<ipv6_address>)

Параметры​

  • <ipv6_address>: Двоичное представление адреса IPv6 (тип VARCHAR, 16 байт)

Возвращаемое значение​

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

Значение результата: 1 означает, что адрес совместим с IPv4, 0 означает, что адрес не совместим с IPv4

Примечания по использованию​

  • Адрес, совместимый с IPv4, имеет формат ::IPv4, где первые 12 байт равны 0, а последние 4 байта содержат адрес IPv4
  • Входные данные должны представлять собой 16-байтовый адрес IPv6 в двоичном виде
  • Этот формат определён в RFC 4291 для переходного периода IPv6
  • Последние 4 байта не могут быть равны 0, поэтому ::0.0.0.0 не является допустимым адресом, совместимым с IPv4, поскольку 0.0.0.0 не является одноадресным адресом IPv4 и не соответствует определению IPv4-Compatible IPv6 Address из RFC 4291
  • Возвращает NULL, если входной параметр равен NULL

Примеры​

Проверка адреса, совместимого с IPv4.

SELECT is_ipv4_compat(INET6_ATON('::192.168.1.1')) as is_compat;
+-----------+
| is_compat |
+-----------+
| 1 |
+-----------+

Проверка адресов, не совместимых с IPv4.

SELECT 
is_ipv4_compat(INET6_ATON('2001:db8::1')) as standard_ipv6,
is_ipv4_compat(INET6_ATON('::ffff:192.168.1.1')) as ipv4_mapped,
is_ipv4_compat(INET6_ATON('::0.0.0.0')) as zero_ip;
+--------------+------------+---------+
| standard_ipv6| ipv4_mapped| zero_ip |
+--------------+------------+---------+
| 0 | 0 | 0 |
+--------------+------------+---------+

Проверка граничных значений.

SELECT 
is_ipv4_compat(INET6_ATON('::0.0.0.0')) as min_ip,
is_ipv4_compat(INET6_ATON('::255.255.255.255')) as max_ip;
+--------+--------+
| min_ip | max_ip |
+--------+--------+
| 0 | 1 |
+--------+--------+

Если входной параметр равен NULL, возвращается NULL.

SELECT is_ipv4_compat(NULL) as null_result;
+-------------+
| null_result |
+-------------+
| NULL |
+-------------+

Ключевые слова​

IS_IPV4_COMPAT