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