Последнее обновление
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