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

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

Синтаксис

Аргумент

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

Пример

Запрос:

Результат:

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

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. IPv4.

Примеры

Запрос:

Результат:

Запрос:

Результат:

toIPv4OrDefault

То же, что и toIPv4, но если адрес IPv4 имеет недопустимый формат, возвращает 0.0.0.0 (0 IPv4) или предоставленный адрес IPv4 по умолчанию.

Синтаксис

Аргументы

  • value — IP-адрес. Строка.
  • default (опционально) — Значение, возвращаемое, если string имеет недопустимый формат. IPv4.

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

  • string, преобразованное в текущий адрес IPv4. Строка.

Пример

Запрос:

Результат:

toIPv4OrNull

То же, что и toIPv4, но если адрес IPv4 имеет недопустимый формат, возвращает null.

Синтаксис

Аргументы

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

  • string, преобразованный в текущий адрес IPv4, или null, если string является недопустимым адресом. Строка.

Пример

Запрос:

Результат:

toIPv4OrZero

То же, что и toIPv4, но если адрес IPv4 имеет недопустимый формат, возвращает 0.0.0.0.

Синтаксис

Аргументы

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

  • string, преобразованный в текущий адрес IPv4, или 0.0.0.0, если string является недопустимым адресом. Строка.

Пример

Запрос:

Результат:

toIPv6

Преобразует строку или UInt128 в адрес IPv6 типа IPv6. Для строк, если адрес IPv6 имеет недопустимый формат, возвращает пустое значение. Похож на функцию IPv6StringToNum, которая преобразует адрес IPv6 в двоичный формат.

Если входная строка содержит действительный адрес IPv4, то возвращается эквивалент IPv6 для адреса IPv4.

Синтаксис

Аргумент

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

  • IP-адрес. IPv6.

Примеры

Запрос:

Результат:

Запрос:

Результат:

toIPv6OrDefault

То же, что и toIPv6, но если адрес IPv6 имеет недопустимый формат, возвращает :: (0 IPv6) или предоставленный адрес IPv6 по умолчанию.

Синтаксис

Аргумент

  • string — IP-адрес. Строка.
  • default (опционально) — Значение, возвращаемое, если string имеет недопустимый формат. IPv6.

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

  • Адрес IPv6 IPv6, в противном случае :: или предоставленный необязательный по умолчанию, если string имеет недопустимый формат.

Пример

Запрос:

Результат:

toIPv6OrNull

То же, что и toIPv6, но если адрес IPv6 имеет недопустимый формат, возвращает null.

Синтаксис

Аргумент

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

  • IP-адрес. IPv6, или null, если string не является допустимым форматом.

Пример

Запрос:

Результат:

toIPv6OrZero

То же, что и toIPv6, но если адрес IPv6 имеет недопустимый формат, возвращает ::.

Синтаксис

Аргумент

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

  • IP-адрес. IPv6, или ::, если string не является допустимым форматом.

Пример

Запрос:

Результат:

IPv6StringToNumOrDefault(s)

То же, что и toIPv6, но если адрес IPv6 имеет недопустимый формат, возвращает 0.

IPv6StringToNumOrNull(s)

То же, что и toIPv6, но если адрес IPv6 имеет недопустимый формат, возвращает null.

isIPv4String

Определяет, является ли входная строка адресом IPv4. Если string является адресом IPv6, возвращает 0.

Синтаксис

Аргументы

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

  • 1, если string является адресом IPv4, 0 в противном случае. UInt8.

Примеры

Запрос:

Результат:

isIPv6String

Определяет, является ли входная строка адресом IPv6. Если string является адресом IPv4, возвращает 0.

Синтаксис

Аргументы

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

  • 1, если string является адресом IPv6, 0 в противном случае. UInt8.

Примеры

Запрос:

Результат:

isIPAddressInRange

Определяет, содержится ли IP-адрес в сети, представленной в формате CIDR. Возвращает 1, если верно, или 0 в противном случае.

Синтаксис

Эта функция принимает как адреса IPv4, так и IPv6 (и сети), представленные как строки. Она возвращает 0, если версия IP адреса и CIDR не совпадают.

Аргументы

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

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

Пример

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат: