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.
Пример
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: