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.
Синтаксис
Аргумент
string— IP адрес. Строка.
Возвращаемое значение
- IPv6 адрес в бинарном формате. FixedString(16).
Пример
Запрос:
Результат:
См. также
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, но поддерживает как строковые, так и беззнаковые целые типы данных в качестве входных аргументов.
Синтаксис
Аргументы
x— IPv4 адрес.Строка,UInt8/16/32.
Возвращаемое значение
- IPv4 адрес. IPv4.
Примеры
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
toIPv4OrDefault
То же, что и toIPv4, но если IPv4 адрес имеет неверный формат, возвращает 0.0.0.0 (0 IPv4) или указанный IPv4 по умолчанию.
Синтаксис
Аргументы
value— IP адрес. Строка.default(необязательно) — Значение, возвращаемое еслиstringимеет неверный формат. IPv4.
Возвращаемое значение
string, преобразованная в текущий IPv4 адрес. Строка.
Пример
Запрос:
Результат:
toIPv4OrNull
То же, что и toIPv4, но если IPv4 адрес имеет неверный формат, возвращает null.
Синтаксис
Аргументы
string— IP адрес. Строка.
Возвращаемое значение
string, преобразованная в текущий IPv4 адрес, или null, еслиstringявляется недействительным адресом. Строка.
Пример
Запрос:
Результат:
toIPv4OrZero
То же, что и toIPv4, но если IPv4 адрес имеет неверный формат, возвращает 0.0.0.0.
Синтаксис
Аргументы
string— IP адрес. Строка.
Возвращаемое значение
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.
Синтаксис
Аргумент
string— IP адрес. Строка.
Возвращаемое значение
- IP адрес. IPv6, или null, если
stringне имеет корректного формата.
Пример
Запрос:
Результат:
toIPv6OrZero
То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает ::.
Синтаксис
Аргумент
string— IP адрес. Строка.
Возвращаемое значение
- IP адрес. IPv6, или
::, еслиstringне имеет корректного формата.
Пример
Запрос:
Результат:
IPv6StringToNumOrDefault(s)
То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает 0.
IPv6StringToNumOrNull(s)
То же, что и toIPv6, но если IPv6 адрес имеет неверный формат, возвращает null.
isIPv4String
Определяет, является ли входная строка IPv4 адресом. Если string является IPv6 адресом, возвращает 0.
Синтаксис
Аргументы
string— IP адрес. Строка.
Возвращаемое значение
1, еслиstringявляется IPv4 адресом,0в противном случае. UInt8.
Примеры
Запрос:
Результат:
isIPv6String
Определяет, является ли входная строка IPv6 адресом. Если string является IPv4 адресом, возвращает 0.
Синтаксис
Аргументы
string— IP адрес. Строка.
Возвращаемое значение
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. Строка.
Возвращаемое значение
1или0. UInt8.
Пример
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: