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

ip-address-functions

description: 'Документация для функций работы с IPv4 и IPv6 адресами' sidebar_label: 'IP адреса' sidebar_position: 95 slug: /sql-reference/functions/ip-address-functions title: 'Функции для работы с IPv4 и IPv6 адресами'

Так как использование 'xxx' является весьма необычным, это может измениться в будущем. Мы рекомендуем вам не полагаться на точный формат этого фрагмента.

IPv6NumToString(x)

Принимает значение типа FixedString(16), содержащее IPv6 адрес в бинарном формате. Возвращает строку, содержащую этот адрес в текстовом формате. IPv6-зMapped IPv4 адреса выводятся в формате ::ffff:111.222.33.44.

Псевдоним: INET6_NTOA.

Примеры:

IPv6StringToNum

Обратная функция к IPv6NumToString. Если IPv6 адрес имеет неверный формат, выбрасывает исключение.

Если входная строка содержит валидный IPv4 адрес, возвращает его IPv6 эквивалент. HEX может быть заглавным или строчным.

Псевдоним: INET6_ATON.

Синтаксис

Аргумент

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

Пример

Запрос:

Результат:

См. также

IPv6StringToNumOrDefault(s)

То же, что и IPv6StringToNum, но если IPv6 адрес имеет неверный формат, возвращает 0.

IPv6StringToNumOrNull(s)

То же, что и IPv6StringToNum, но если IPv6 адрес имеет неверный формат, возвращает null.

IPv4ToIPv6(x)

Принимает число типа UInt32. Интерпретирует его как IPv4 адрес в big endian. Возвращает значение FixedString(16), содержащее IPv6 адрес в бинарном формате. Примеры:

cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)

Принимает значение типа FixedString(16), содержащее IPv6 адрес в бинарном формате. Возвращает строку, содержащую адрес с удаленным указанным количеством байтов в текстовом формате. Например:

IPv4CIDRToRange(ipv4, Cidr),

Принимает IPv4 и значение UInt8, содержащее CIDR. Возвращает кортеж из двух IPv4, содержащих нижнюю и верхнюю границы подсети.

IPv6CIDRToRange(ipv6, Cidr),

Принимает IPv6 и значение UInt8, содержащее CIDR. Возвращает кортеж из двух IPv6, содержащих нижнюю и верхнюю границы подсети.

toIPv4

Конвертирует строку или число UInt32 в тип IPv4. Похоже на функции IPv4StringToNum и IPv4NumToString, но поддерживает как строковые, так и беззнаковые целые типы данных в качестве входных аргументов.

Синтаксис

Аргументы

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

  • IPv4 адрес. IPv4.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

toIPv4OrDefault

То же, что и toIPv4, но если IPv4 адрес имеет неверный формат, возвращает 0.0.0.0 (0 IPv4) или указанный IPv4 по умолчанию.

Синтаксис

Аргументы

  • value — IP адрес. Строка.
  • default (необязательно) — Значение, возвращаемое если string имеет неверный формат. IPv4.

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

  • string, преобразованная в текущий IPv4 адрес. Строка.

Пример

Запрос:

Результат:

toIPv4OrNull

То же, что и toIPv4, но если IPv4 адрес имеет неверный формат, возвращает null.

Синтаксис

Аргументы

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

  • string, преобразованная в текущий IPv4 адрес, или null, если string является недействительным адресом. Строка.

Пример

Запрос:

Результат:

toIPv4OrZero

То же, что и toIPv4, но если IPv4 адрес имеет неверный формат, возвращает 0.0.0.0.

Синтаксис

Аргументы

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

  • string, преобразованная в текущий IPv4 адрес, или 0.0.0.0, если string является недействительным адресом. Строка.

Пример

Запрос:

Результат:

toIPv6

Конвертирует строку или UInt128 в тип IPv6. Для строк, если IPv6 адрес имеет неверный формат, возвращает пустое значение. Похоже на функции IPv6StringToNum и IPv6NumToString, которые преобразуют IPv6 адрес в бинарный формат (т.е. FixedString(16)).

Если входная строка содержит валидный IPv4 адрес, возвращается его IPv6 эквивалент.

Синтаксис

Аргумент

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

  • IP адрес. IPv6.

Примеры

Запрос:

Результат:

Запрос:

Результат:

toIPv6OrDefault

То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает :: (0 IPv6) или указанный IPv6 по умолчанию.

Синтаксис

Аргумент

  • string — IP адрес. Строка.
  • default (необязательно) — Значение, возвращаемое если string имеет неверный формат. IPv6.

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

  • IPv6 адрес IPv6, иначе :: или указанное значение по умолчанию, если string имеет неверный формат.

Пример

Запрос:

Результат:

toIPv6OrNull

То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает null.

Синтаксис

Аргумент

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

  • IP адрес. IPv6, или null, если string не имеет корректного формата.

Пример

Запрос:

Результат:

toIPv6OrZero

То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает ::.

Синтаксис

Аргумент

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

  • IP адрес. IPv6, или ::, если string не имеет корректного формата.

Пример

Запрос:

Результат:

IPv6StringToNumOrDefault(s)

То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает 0.

IPv6StringToNumOrNull(s)

То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает null.

isIPv4String

Определяет, является ли входная строка IPv4 адресом. Если string является IPv6 адресом, возвращает 0.

Синтаксис

Аргументы

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

  • 1, если string является IPv4 адресом, 0 в противном случае. UInt8.

Примеры

Запрос:

Результат:

isIPv6String

Определяет, является ли входная строка IPv6 адресом. Если string является IPv4 адресом, возвращает 0.

Синтаксис

Аргументы

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

  • 1, если string является IPv6 адресом, 0 в противном случае. UInt8.

Примеры

Запрос:

Результат:

isIPAddressInRange

Определяет, содержится ли IP адрес в сети, представленной в нотации CIDR. Возвращает 1, если это так, или 0 в противном случае.

Синтаксис

Эта функция принимает как IPv4, так и IPv6 адреса (и сети), представленные в виде строк. Возвращает 0, если версия IP адреса и CIDR не совпадают.

Аргументы

  • address — IPv4 или IPv6 адрес. Строка, IPv4, IPv6, Nullable(String), Nullable(IPv4) и Nullable(IPv6).
  • prefix — IPv4 или IPv6 сетевой префикс в CIDR. Строка.

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

Пример

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат: