Перейти к основному содержимому
Перейти к основному содержимому

Функции для работы с 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.

Возвращаемое значение

Пример

Запрос:

Результат:

Смотрите также

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 не совпадают.

Аргументы

  • address — адрес IPv4 или IPv6. String.
  • prefix — сетевой префикс IPv4 или IPv6 в CIDR. String.

Возвращаемое значение

Пример

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат: