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

IPV4_STRING_TO_NUM_OR_DEFAULT

Описание​

Принимает строку, содержащую IPv4-адрес в формате A.B.C.D (десятичные числа, разделённые точками). Возвращает значение типа BIGINT, представляющее числовое значение соответствующего IPv4-адреса с сетевым порядком байтов (big endian).

Синтаксис​

IPV4_STRING_TO_NUM_OR_DEFAULT(<ipv4_string>)

Параметры​

  • <ipv4_string>: IPv4-адрес в виде строки (формат A.B.C.D)

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

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

Значение результата:

  • Возвращает числовое значение соответствующего IPv4-адреса в виде целого числа с сетевым порядком байтов (big endian)
  • Возвращает 0 для некорректных строк IPv4 или входного значения NULL

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

  • Функция не генерирует исключений; при некорректных входных данных всегда возвращает 0 (соответствует 0.0.0.0)
  • Пробелы в начале и конце входных строк не допускаются
  • Часто используется для преобразования, устойчивого к ошибкам, например при очистке некорректных данных

Примеры​

Преобразование текстового IPv4-адреса 192.168.0.1 в соответствующее числовое значение в виде целого числа с сетевым порядком байтов (big endian).

select ipv4_string_to_num_or_default('192.168.0.1');
+----------------------------------------------+
| ipv4_string_to_num_or_default('192.168.0.1') |
+----------------------------------------------+
| 3232235521 |
+----------------------------------------------+

Граничные значения IPv4 (минимальное и максимальное).

select
ipv4_string_to_num_or_default('0.0.0.0') as min_v4,
ipv4_string_to_num_or_default('255.255.255.255') as max_v4;
+--------+-----------+
| min_v4| max_v4 |
+--------+-----------+
| 0 | 4294967295|
+--------+-----------+

При некорректных входных данных возвращается 0 (исключение не генерируется).

select ipv4_string_to_num_or_default('256.0.0.1');
+--------------------------------------------+
| ipv4_string_to_num_or_default('256.0.0.1') |
+--------------------------------------------+
| 0 |
+--------------------------------------------+

select ipv4_string_to_num_or_default(' 1.1.1.1 ');
+--------------------------------------------+
| ipv4_string_to_num_or_default(' 1.1.1.1 ') |
+--------------------------------------------+
| 0 |
+--------------------------------------------+

select ipv4_string_to_num_or_default(NULL);
+-------------------------------------+
| ipv4_string_to_num_or_default(NULL) |
+-------------------------------------+
| 0 |
+-------------------------------------+

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

IPV4_STRING_TO_NUM_OR_DEFAULT