Последнее обновление
IPV6_STRING_TO_NUM
Описание
Функция, обратная IPV6_NUM_TO_STRING: принимает строку с IP-адресом и возвращает IPv6-адрес в двоичном формате.
Синтаксис
IPV6_STRING_TO_NUM(<ipv6_string>)
Параметры
<ipv6_string>: IPv6-адрес строкового типа
Возвращаемое значение
Тип возвращаемого значения: VARCHAR (16-байтовые двоичные данные)
Смысл возвращаемого значения:
- Возвращает 16-байтовое двоичное представление IPv6
- Вызывает исключение, если входное значение равно NULL или содержит некорректный IP-адрес
- Если на вход подана корректная текстовая запись IPv4, возвращает эквивалентный IPv6-адрес (
::ffff:<ipv4>)
Примечания по использованию
- Поддерживает стандартную текстовую запись IPv6 (в том числе сокращённые формы и формы с пропущенными группами, обозначенными
::) - Если на вход подана корректная текстовая запись IPv4, преобразует её в представление IPv4-Mapped для IPv6 и возвращает результат
- Не поддерживает расширенные формы записи, такие как CIDR, порты, квадратные скобки и т. д.
Примеры
Преобразование текстовой записи IPv6 1111::ffff в 16-байтовое двоичное значение (отображается в шестнадцатеричном виде).
select hex(ipv6_string_to_num('1111::ffff')) as v6;
+----------------------------------+
| v6 |
+----------------------------------+
| 1111000000000000000000000000FFFF |
+----------------------------------+
Текстовая запись IPv4 автоматически преобразуется в IPv6 (::ffff:<ipv4>), после чего возвращается как 16-байтовое двоичное значение.
select hex(ipv6_string_to_num('192.168.0.1')) as mapped;
+----------------------------------+
| mapped |
+----------------------------------+
| 00000000000000000000FFFFC0A80001 |
+----------------------------------+
Входное значение NULL вызывает исключение
select hex(ipv6_string_to_num(NULL));
ERROR 1105 (HY000): errCode = 2, detailMessage = (...)[INVALID_ARGUMENT]Null Input, you may consider convert it to a valid default IPv6 value like '::' first
Некорректное входное значение вызывает исключение.
select hex(ipv6_string_to_num('notaaddress'));
ERROR 1105 (HY000): errCode = 2, detailMessage = (...)[INVALID_ARGUMENT]Invalid IPv6 value
Ключевые слова
IPV6_STRING_TO_NUM