Функции для работы с 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.
Пример
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: