Последнее обновление
IPV6_STRING_TO_NUM_OR_DEFAULT
Описание
Функция, обратная IPV6_NUM_TO_STRING: принимает строку с IP-адресом и возвращает IPv6-адрес в двоичном формате.
Синтаксис
IPV6_STRING_TO_NUM_OR_DEFAULT(<ipv6_string>)
Параметры
<ipv6_string>: IPv6-адрес строкового типа
Возвращаемое значение
Тип возвращаемого значения: VARCHAR (16-байтовое двоичное значение)
Описание возвращаемого значения:
- Возвращает 16-байтовое двоичное представление IPv6-адреса
- Если входное значение равно NULL, возвращает 16-байтовое двоичное значение, заполненное нулями
- Для некорректных IP-адресов возвращает 16-байтовое двоичное значение, заполненное нулями (исключение не возникает)
- Если входное значение — корректный IPv4-адрес в текстовом виде, возвращает эквивалентный IPv6-адрес (
::ffff:<ipv4>)
Примечания по использованию
- Эта функция не генерирует исключений: при любых некорректных входных данных возвращает 16-байтовое двоичное значение, заполненное нулями
- Поддерживает сокращённую запись IPv6; IPv4-адреса в текстовом виде преобразуются в представление IPv6
- Подходит для пакетного преобразования, устойчивого к ошибкам
Примеры
Преобразование IPv6-адреса 1111::ffff из текстового вида в 16-байтовое двоичное значение (отображается в шестнадцатеричном виде).
select hex(ipv6_string_to_num_or_default('1111::ffff')) as v6;
+----------------------------------+
| v6 |
+----------------------------------+
| 1111000000000000000000000000FFFF |
+----------------------------------+
IPv4-адрес в текстовом виде автоматически преобразуется в IPv6 (::ffff:<ipv4>), а затем возвращается как 16-байтовое двоичное значение.
select hex(ipv6_string_to_num_or_default('192.168.0.1')) as mapped;
+----------------------------------+
| mapped |
+----------------------------------+
| 00000000000000000000FFFFC0A80001 |
+----------------------------------+
Если параметр равен NULL, возвращается 16-байтовое двоичное значение, заполненное нулями
select hex(ipv6_string_to_num_or_default(NULL)) as null_result;
+----------------------------------+
| null_result |
+----------------------------------+
| 00000000000000000000000000000000 |
+----------------------------------+
При некорректных входных данных возвращается 16-байтовое двоичное значение, заполненное нулями (исключение не возникает).
select hex(ipv6_string_to_num_or_default('notaaddress')) as invalid;
+----------------------------------+
| invalid |
+----------------------------------+
| 00000000000000000000000000000000 |
+----------------------------------+
Ключевые слова
IPV6_STRING_TO_NUM_OR_DEFAULT