Последнее обновление
IS_IPV4_MAPPED
Описание
Проверяет, является ли адрес IPv6 адресом IPv4-mapped. Адреса IPv4-mapped представляют собой особый формат адресов IPv6, используемый для представления адресов IPv4 в сетях IPv6.
Синтаксис
IS_IPV4_MAPPED(<ipv6_address>)
Параметры
<ipv6_address>: Двоичное представление адреса IPv6 (тип VARCHAR, 16 байт)
Возвращаемое значение
Тип возвращаемого значения: BOOLEAN
Смысл возвращаемого значения: 1 означает, что адрес является адресом IPv4-mapped, 0 означает, что адрес не является адресом IPv4-mapped
Примечания по использованию
- Формат адреса IPv4-mapped:
::ffff:IPv4, где первые 10 байт равны 0, байты 11-12 равны 0xFFFF, а последние 4 байта содержат адрес IPv4 - Входные данные должны представлять собой двоичные данные IPv6 длиной 16 байт
- Этот формат определён в RFC 4291 и является наиболее распространённым способом представления адресов IPv4 в IPv6
- Возвращает NULL, если входной параметр равен NULL
Примеры
Проверка адреса IPv4-mapped.
SELECT is_ipv4_mapped(INET6_ATON('::ffff:192.168.1.1')) as is_mapped;
+-----------+
| is_mapped |
+-----------+
| 1 |
+-----------+
Проверка адресов, не являющихся адресами IPv4-mapped.
SELECT
is_ipv4_mapped(INET6_ATON('2001:db8::1')) as standard_ipv6,
is_ipv4_mapped(INET6_ATON('::192.168.1.1')) as ipv4_compat;
+--------------+------------+
| standard_ipv6| ipv4_compat|
+--------------+------------+
| 0 | 0 |
+--------------+------------+
Проверка граничных значений.
SELECT
is_ipv4_mapped(INET6_ATON('::ffff:0.0.0.0')) as min_ip,
is_ipv4_mapped(INET6_ATON('::ffff:255.255.255.255')) as max_ip;
+--------+--------+
| min_ip | max_ip |
+--------+--------+
| 1 | 1 |
+--------+--------+
Если входной параметр равен NULL, возвращается NULL.
SELECT is_ipv4_mapped(NULL) as null_result;
+-------------+
| null_result |
+-------------+
| NULL |
+-------------+
Ключевые слова
IS_IPV4_MAPPED