Функции для работы с IPv4 и IPv6 адресами
IPv4NumToString
Принимает число UInt32. Интерпретирует его как адрес IPv4 в формате big endian. Возвращает строку, содержащую соответствующий адрес IPv4 в формате A.B.C.d (числа, разделенные точками, в десятичном виде).
Псевдоним: INET_NTOA
.
IPv4StringToNum
Обратная функция для IPv4NumToString. Если адрес IPv4 имеет недопустимый формат, генерируется исключение.
Псевдоним: INET_ATON
.
IPv4StringToNumOrDefault(s)
Такое же, как IPv4StringToNum
, но если адрес IPv4 имеет недопустимый формат, возвращает 0.
IPv4StringToNumOrNull(s)
Такое же, как IPv4StringToNum
, но если адрес IPv4 имеет недопустимый формат, возвращает null.
IPv4NumToStringClassC(num)
Похоже на IPv4NumToString, но использует xxx вместо последнего октета.
Пример:
Поскольку использование 'xxx' является весьма необычным, это может быть изменено в будущем. Мы рекомендуем вам не полагаться на точный формат этого фрагмента.
IPv6NumToString(x)
Принимает значение FixedString(16), содержащее адрес IPv6 в двоичном формате. Возвращает строку, содержащую этот адрес в текстовом формате. IPv6-адреса, сопоставленные с IPv4, выводятся в формате ::ffff:111.222.33.44.
Псевдоним: INET6_NTOA
.
Примеры:
IPv6StringToNum
Обратная функция для IPv6NumToString. Если адрес IPv6 имеет недопустимый формат, генерируется исключение.
Если входная строка содержит действительный адрес IPv4, возвращает его эквивалент IPv6. HEX может быть как в верхнем, так и в нижнем регистре.
Псевдоним: INET6_ATON
.
Синтаксис
Аргумент
string
— IP адрес. String.
Возвращаемое значение
- Адрес 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
Как IPv4StringToNum
, но принимает строку формата IPv4 адреса и возвращает значение типа IPv4.
Синтаксис
Аргументы
string
— IPv4 адрес. String.
Возвращаемое значение
string
, преобразованный в адрес IPv4. IPv4.
Примеры
Запрос:
Результат:
Запрос:
Результат:
toIPv4OrDefault
Такое же, как toIPv4
, но если адрес IPv4 имеет недопустимый формат, возвращает 0.0.0.0
(0 IPv4) или указанный по умолчанию IPv4.
Синтаксис
Аргументы
value
— IP адрес. String.default
(необязательный) — Значение, которое нужно вернуть, еслиstring
имеет недопустимый формат. IPv4.
Возвращаемое значение
string
, преобразованный в текущий адрес IPv4. String.
Пример
Запрос:
Результат:
toIPv4OrNull
Такое же, как toIPv4
, но если адрес IPv4 имеет недопустимый формат, возвращает null.
Синтаксис
Аргументы
string
— IP адрес. String.
Возвращаемое значение
string
, преобразованный в текущий адрес IPv4, или null, еслиstring
— недопустимый адрес. String.
Пример
Запрос:
Результат:
toIPv4OrZero
Такое же, как toIPv4
, но если адрес IPv4 имеет недопустимый формат, возвращает 0.0.0.0
.
Синтаксис
Аргументы
string
— IP адрес. String.
Возвращаемое значение
string
, преобразованный в текущий адрес IPv4, или0.0.0.0
, еслиstring
— недопустимый адрес. String.
Пример
Запрос:
Результат:
toIPv6
Преобразует строку или форму UInt128 адреса IPv6 в тип IPv6. Для строк, если адрес IPv6 имеет недопустимый формат, возвращает пустое значение. Аналогично функции IPv6StringToNum, которая преобразует адрес IPv6 в двоичный формат.
Если входная строка содержит действительный адрес IPv4, то возвращается эквивалент IPv6 адреса IPv4.
Синтаксис
Аргумент
string
илиUInt128
— IP адрес. String.
Возвращаемое значение
- IP адрес. IPv6.
Примеры
Запрос:
Результат:
Запрос:
Результат:
toIPv6OrDefault
Такое же, как toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает ::
(0 IPv6) или указанный адрес IPv6 по умолчанию.
Синтаксис
Аргумент
string
— IP адрес. String.default
(необязательный) — Значение, которое нужно вернуть, еслиstring
имеет недопустимый формат. IPv6.
Возвращаемое значение
- Адрес IPv6 IPv6, в противном случае
::
или предоставленный необязательный по умолчанию, еслиstring
имеет недопустимый формат.
Пример
Запрос:
Результат:
toIPv6OrNull
Такое же, как toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает null.
Синтаксис
Аргумент
string
— IP адрес. String.
Возвращаемое значение
- IP адрес. IPv6, или null, если
string
имеет недопустимый формат.
Пример
Запрос:
Результат:
toIPv6OrZero
Такое же, как toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает ::
.
Синтаксис
Аргумент
string
— IP адрес. String.
Возвращаемое значение
- IP адрес. IPv6, или
::
, еслиstring
имеет недопустимый формат.
Пример
Запрос:
Результат:
IPv6StringToNumOrDefault(s)
Такое же, как toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает 0.
IPv6StringToNumOrNull(s)
Такое же, как toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает null.
isIPv4String
Определяет, является ли входная строка адресом IPv4. Если string
является адресом IPv6, возвращает 0
.
Синтаксис
Аргументы
string
— IP адрес. String.
Возвращаемое значение
1
, еслиstring
является адресом IPv4,0
в противном случае. UInt8.
Примеры
Запрос:
Результат:
isIPv6String
Определяет, является ли входная строка адресом IPv6. Если string
является адресом IPv4, возвращает 0
.
Синтаксис
Аргументы
string
— IP адрес. String.
Возвращаемое значение
1
, еслиstring
является адресом IPv6,0
в противном случае. UInt8.
Примеры
Запрос:
Результат:
isIPAddressInRange
Определяет, содержится ли IP адрес в сети, представленной в нотации CIDR. Возвращает 1
, если это правда, или 0
в противном случае.
Синтаксис
Эта функция принимает как IPv4, так и IPv6 адреса (и сети), представленные как строки. Она возвращает 0
, если версия IP адреса и CIDR не совпадают.
Аргументы
Возвращаемое значение
1
или0
. UInt8.
Пример
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: