Функции для работы с IP-адресами IPv4 и IPv6
IPv4CIDRToRange
Введена в версии: v20.1.0
Принимает IPv4-адрес и длину префикса CIDR и возвращает диапазон адресов подсети в виде кортежа из двух значений IPv4: первого и последнего адресов в этой подсети.
Версию для IPv6 см. в IPv6CIDRToRange.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает кортеж из двух IPv4-адресов, задающих диапазон адресов подсети. Tuple(IPv4, IPv4)
Примеры
Пример использования
IPv4NumToString
Появилась в версии: v1.1.0
Преобразует 32-битное целое число в строковое представление IPv4-адреса в десятичной записи с разделением октетов точками (формат A.B.C.D). Интерпретирует входное значение в сетевом порядке байтов (big-endian).
Синтаксис
Псевдонимы: INET_NTOA
Аргументы
num— IPv4-адрес в виде числа типа UInt32.UInt32
Возвращаемое значение
Возвращает число, представляющее MAC-адрес, или 0, если формат недопустим. String
Примеры
Пример использования
IPv4NumToStringClassC
Была добавлена в версии v1.1.0
Преобразует 32-битное целое число в строковое представление IPv4-адреса в десятичной точечной записи (формат A.B.C.D),
аналогично IPv4NumToString, но с использованием xxx вместо последнего октета.
Синтаксис
Аргументы
num— IPv4-адрес в виде числа UInt32.UInt32
Возвращаемое значение
Возвращает строку IPv4-адреса, в которой xxx заменяет последний октет. String
Примеры
Базовый пример с агрегацией
IPv4StringToNum
Появилась в версии: v1.1.0
Преобразует строку IPv4-адреса в десятичной точечной нотации (формат A.B.C.D) в соответствующее 32-битное целочисленное представление (обратная функция по отношению к IPv4NumToString). Если IPv4-адрес имеет неверный формат, генерируется исключение.
Синтаксис
Псевдонимы: INET_ATON
Аргументы
string— строка IPv4-адреса.String
Возвращаемое значение
Возвращает IPv4-адрес. UInt32
Примеры
Пример использования
IPv4StringToNumOrDefault
Появилась в версии v22.3.0
Преобразует строку с IPv4-адресом в десятичной точечной нотации (формат A.B.C.D) в соответствующее 32-битное целочисленное представление, а при неверном формате IPv4-адреса возвращает 0.
Синтаксис
Аргументы
string— строка IPv4-адреса.String
Возвращаемое значение
Возвращает IPv4-адрес или 0, если адрес некорректен. UInt32
Примеры
Пример с некорректным адресом
IPv4StringToNumOrNull
Впервые представлена в версии: v22.3.0
Преобразует 32-битное целое число в строковое представление IPv4-адреса в десятичной записи с точками (формат A.B.C.D), но если IPv4-адрес имеет некорректный формат, возвращает NULL.
Синтаксис
Аргументы
string— строка с IPv4-адресом.String
Возвращаемое значение
Возвращает IPv4-адрес или NULL, если адрес некорректен. Nullable(UInt32)
Примеры
Пример с некорректным адресом
IPv4ToIPv6
Появилась в версии: v1.1.0
Интерпретирует 32-битное число в порядке big endian как IPv4-адрес, который затем преобразуется в соответствующий IPv6-адрес в формате FixedString(16).
Синтаксис
Аргументы
x— IPv4-адрес.UInt32
Возвращаемое значение
Возвращает IPv6-адрес в двоичном формате. FixedString(16)
Примеры
Пример использования
IPv6CIDRToRange
Введена в версии: v20.1.0
Принимает IPv6-адрес с префиксом CIDR (Classless Inter-Domain Routing) и возвращает диапазон адресов подсети в виде кортежа из двух значений IPv6: минимального и максимального адресов в этой подсети.
Для версии для IPv4 см. IPv4CIDRToRange.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает кортеж из двух IPv6-адресов, представляющих диапазон подсети. Tuple(IPv6, IPv6)
Примеры
Пример использования
IPv6NumToString
Добавлена в: v1.1.0
Преобразует IPv6-адрес из двоичного формата (FixedString(16)) в его стандартное текстовое представление.
IPv4-mapped IPv6-адреса отображаются в формате ::ffff:111.222.33.44.
Синтаксис
Псевдонимы: INET6_NTOA
Аргументы
x— IPv6-адрес в бинарном формате.FixedString(16)илиIPv6
Возвращаемое значение
Возвращает строку IPv6-адреса в текстовом формате. String
Примеры
Пример использования
Анализ обращений по IPv6
IPv4‑адреса, сопоставленные с IPv6
IPv6StringToNum
Введена в: v1.1.0
Преобразует IPv6-адрес из его стандартного текстового представления в двоичный формат (FixedString(16)).
Принимает IPv4-отображённые IPv6-адреса в формате ::ffff:111.222.33.44..
Если IPv6-адрес имеет недопустимый формат, генерируется исключение.
Если входная строка содержит допустимый IPv4-адрес, возвращает его IPv6-эквивалент. HEX-значения могут быть в верхнем или нижнем регистре.
Синтаксис
Псевдонимы: INET6_ATON
Аргументы
string— строка с IPv6-адресом.String
Возвращаемое значение
Возвращает IPv6-адрес в двоичном формате. FixedString(16)
Примеры
Базовый пример
IPv6StringToNumOrDefault
Введена в версии: v22.3.0
Преобразует IPv6-адрес из его стандартного текстового представления в двоичный формат (FixedString(16)).
Поддерживает IPv4-отображённые IPv6-адреса в формате ::ffff:111.222.33.44..
Если IPv6-адрес имеет неверный формат, возвращает значение по умолчанию ::.
Синтаксис
Аргументы
string— строка с IPv6-адресом.String
Возвращаемое значение
IPv6-адрес в двоичном формате или FixedString(16), заполненная нулями, если адрес некорректен. FixedString(16)
Примеры
Базовый пример с некорректным адресом
IPv6StringToNumOrNull
Введена в: v22.3.0
Преобразует IPv6-адрес из его стандартного текстового представления в двоичный формат (FixedString(16)).
Принимает IPv4-отображённые IPv6-адреса в формате ::ffff:111.222.33.44..
Если IPv6-адрес имеет неверный формат, функция возвращает NULL.
Синтаксис
Аргументы
string— строка IPv6-адреса.String
Возвращаемое значение
Возвращает IPv6-адрес в двоичном формате или NULL, если адрес некорректен. Nullable(FixedString(16))
Примеры
Базовый пример с некорректным адресом
cutIPv6
Добавлена в версии: v1.1.0
Принимает значение типа FixedString(16), содержащее IPv6-адрес в бинарном формате.
Возвращает строку с адресом, в котором удалено указанное количество байт, в текстовом формате.
Синтаксис
Аргументы
x— IPv6-адрес в двоичном формате.FixedString(16)илиIPv6bytesToCutForIPv6— Число байт, которые нужно отбросить для IPv6.UInt8bytesToCutForIPv4— Число байт, которые нужно отбросить для IPv4.UInt8
Возвращаемое значение
Возвращает строку, содержащую IPv6-адрес в текстовом формате с указанным количеством отброшенных байт. String
Примеры
Пример использования
isIPAddressInRange
Введена в: v21.4.0
Определяет, содержится ли IP-адрес в сети, представленной в нотации Classless Inter-Domain Routing (CIDR).
Функция принимает как IPv4-, так и IPv6-адреса (и сети), представленные в виде строк. Возвращает 0, если версии IP-адреса и CIDR не совпадают.
Синтаксис
Аргументы
address— IPv4- или IPv6-адрес.Stringprefix— IPv4- или IPv6-сетевой префикс в CIDR-нотации.String
Возвращаемое значение
Возвращает 1, если версия IP-адреса и CIDR-префикса совпадают, иначе 0. UInt8
Примеры
IPv4-адрес в диапазоне
Адрес IPv4 вне допустимого диапазона
IPv6-адрес вне допустимого диапазона
isIPv4String
Введена в: v21.1.0
Определяет, является ли входная строка IPv4-адресом.
Аналогичная функция для IPv6: isIPv6String.
Синтаксис
Аргументы
string— строка IP-адреса для проверки.String
Возвращаемое значение
Возвращает 1, если string — IPv4-адрес, иначе 0. UInt8
Примеры
Пример использования
isIPv6String
Введена в версии: v21.1.0
Определяет, является ли заданная строка IPv6-адресом.
Аналог для IPv4 см. в isIPv4String.
Синтаксис
Аргументы
string— строка IP-адреса для проверки.String
Возвращаемое значение
Возвращает 1, если string — IPv6-адрес, иначе 0. UInt8
Примеры
Пример использования
toIPv4
Впервые появилась в: v20.1.0
Преобразует строку или значение IPv4-адреса типа UInt32 в тип данных IPv4.
Аналогична функциям IPv4StringToNum и IPv4NumToString, но поддерживает в качестве входных аргументов как строковые, так и беззнаковые целочисленные значения.
Синтаксис
Аргументы
x— IPv4-адрес типаStringилиUInt8/16/32
Возвращаемое значение
Возвращает IPv4-адрес. IPv4
Примеры
Пример использования
Сравнение с функциями IPv4StringToNum и IPv4NumToString.
Преобразование из целого числа
toIPv4OrDefault
Добавлено в версии: v22.3.0
Преобразует строку или значение IPv4-адреса в виде UInt32 в тип IPv4.
Если IPv4-адрес имеет некорректный формат, функция возвращает 0.0.0.0 (нулевой IPv4-адрес) или указанный IPv4 по умолчанию.
Синтаксис
Аргументы
string— строковое представление IP-адреса для преобразования.Stringdefault— необязательный аргумент. Значение, которое возвращается, если строка не является корректным IPv4-адресом.IPv4
Возвращаемое значение
Возвращает IPv4-адрес, полученный из строки, или значение по умолчанию, если преобразование не удалось. IPv4
Примеры
Корректные и некорректные строки IPv4
toIPv4OrNull
Введена в: v22.3.0
Преобразует входное значение в значение типа IPv4, но возвращает NULL в случае ошибки.
Аналог toIPv4, но возвращает NULL вместо генерации исключения при ошибках преобразования.
Поддерживаемые аргументы:
- Строковые представления IPv4-адресов в десятичной точечной нотации.
- Целочисленные представления IPv4-адресов.
Неподдерживаемые аргументы (возвращается NULL):
- Неверные форматы IP-адресов.
- IPv6-адреса.
- Значения вне допустимого диапазона.
- Некорректные адреса.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает IPv4-адрес, если операция прошла успешно, иначе — NULL. IPv4 или NULL
Примеры
Пример использования
toIPv4OrZero
Добавлено в: v23.1.0
Преобразует входное значение в значение типа IPv4, но в случае ошибки возвращает нулевой IPv4-адрес.
Аналог функции toIPv4, но возвращает нулевой IPv4-адрес (0.0.0.0) вместо генерации исключения при ошибках преобразования.
Поддерживаемые аргументы:
- Строковые представления IPv4-адресов в десятичной точечной нотации.
- Целочисленные представления IPv4-адресов.
Неподдерживаемые аргументы (для них возвращается нулевой IPv4-адрес):
- Неверные форматы IP-адресов.
- IPv6-адреса.
- Значения вне допустимого диапазона.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает IPv4-адрес при успешном выполнении, в противном случае — нулевой IPv4-адрес (0.0.0.0). IPv4
Примеры
Пример использования
toIPv6
Добавлена в: v20.1.0
Преобразует строку или значение IPv6-адреса в формате UInt128 в тип IPv6.
Если строка содержит IPv6-адрес в недопустимом формате, возвращается пустое значение.
Аналогично функциям IPv6StringToNum и IPv6NumToString, которые преобразуют IPv6-адрес в двоичный формат и обратно (то есть FixedString(16)).
Если во входной строке содержится корректный IPv4-адрес, возвращается IPv6-эквивалент этого IPv4-адреса.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает IPv6-адрес. IPv6
Примеры
Пример использования
Отображение IPv4 в IPv6
toIPv6OrDefault
Добавлена в версии: v22.3.0
Преобразует строку или IPv6-адрес в формате UInt128 в тип IPv6.
Если IPv6-адрес имеет неверный формат, функция возвращает :: (нулевой IPv6-адрес) или указанный IPv6 по умолчанию.
Синтаксис
Аргументы
string— строка с IP-адресом для преобразования.default— необязательный параметр. Значение, которое будет возвращено, если строка имеет некорректный формат.
Возвращаемое значение
Возвращает IPv6-адрес; если аргумент string имеет некорректный формат, возвращает :: или переданное необязательное значение default. IPv6
Примеры
Корректные и некорректные строки IPv6
toIPv6OrNull
Добавлена в версии: v22.3.0
Преобразует входное значение к типу данных IPv6, но в случае ошибки возвращает NULL.
Аналог функции toIPv6, но вместо выброса исключения при ошибках преобразования возвращает NULL.
Поддерживаемые аргументы:
- Строковые представления IPv6-адресов в стандартной нотации.
- Строковые представления IPv4-адресов (преобразуются в IPv4-mapped IPv6).
- Бинарные представления IPv6-адресов.
Неподдерживаемые аргументы (возвращают NULL):
- Неверные форматы IP-адресов.
- Некорректные IPv6-адреса.
- Значения вне допустимого диапазона.
- Недопустимая нотация.
Синтаксис
Аргументы
x— строковое представление IPv6- или IPv4-адреса.String
Возвращаемое значение
Возвращает IPv6-адрес в случае успеха, в противном случае — NULL. IPv6 или NULL
Примеры
Пример использования
toIPv6OrZero
Добавлено в: v23.1.0
Преобразует входное значение в значение типа IPv6, но при ошибке возвращает нулевой IPv6‑адрес.
Аналог toIPv6, но возвращает нулевой IPv6‑адрес (::) вместо генерации исключения при ошибках преобразования.
Поддерживаемые аргументы:
- Строковые представления IPv6‑адресов в стандартной нотации.
- Строковые представления IPv4‑адресов (преобразуются в IPv4-mapped IPv6).
- Двоичные представления IPv6‑адресов.
Неподдерживаемые аргументы (возвращают нулевой IPv6‑адрес):
- Неверные форматы IP‑адресов.
- Некорректные IPv6‑адреса.
- Значения вне допустимого диапазона.
Синтаксис
Аргументы
x— строковое представление IPv6- или IPv4-адреса.String
Возвращаемое значение
Возвращает IPv6-адрес в случае успешного преобразования, в противном случае — нулевой IPv6-адрес (::). IPv6
Примеры
Пример использования