Функции для работы с 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
Преобразует строку в форме IPv6 адреса в тип IPv6. Если формат IPv6 адреса недопустим, возвращает пустое значение. Похоже на функцию IPv6StringToNum, которая преобразует IPv6 адрес в двоичный формат.
Если входная строка содержит допустимый IPv4 адрес, то возвращается эквивалент IPv6 этого IPv4 адреса.
Синтаксис
Аргумент
string
— 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.
Пример
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: