Функции для работы с адресами 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-адрес. Строка.
Возвращаемое значение
- Адрес 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
, преобразованный в адрес IPv4. IPv4.
Примеры
Запрос:
Результат:
Запрос:
Результат:
toIPv4OrDefault
То же, что и toIPv4
, но если адрес IPv4 имеет недопустимый формат, возвращает 0.0.0.0
(0 IPv4) или предоставленный адрес IPv4 по умолчанию.
Синтаксис
Аргументы
value
— IP-адрес. Строка.default
(опционально) — Значение, возвращаемое, еслиstring
имеет недопустимый формат. IPv4.
Возвращаемое значение
string
, преобразованное в текущий адрес IPv4. Строка.
Пример
Запрос:
Результат:
toIPv4OrNull
То же, что и toIPv4
, но если адрес IPv4 имеет недопустимый формат, возвращает null.
Синтаксис
Аргументы
string
— IP-адрес. Строка.
Возвращаемое значение
string
, преобразованный в текущий адрес IPv4, или null, еслиstring
является недопустимым адресом. Строка.
Пример
Запрос:
Результат:
toIPv4OrZero
То же, что и toIPv4
, но если адрес IPv4 имеет недопустимый формат, возвращает 0.0.0.0
.
Синтаксис
Аргументы
string
— IP-адрес. Строка.
Возвращаемое значение
string
, преобразованный в текущий адрес IPv4, или0.0.0.0
, еслиstring
является недопустимым адресом. Строка.
Пример
Запрос:
Результат:
toIPv6
Преобразует строку или UInt128 в адрес IPv6 типа IPv6. Для строк, если адрес IPv6 имеет недопустимый формат, возвращает пустое значение. Похож на функцию IPv6StringToNum, которая преобразует адрес IPv6 в двоичный формат.
Если входная строка содержит действительный адрес IPv4, то возвращается эквивалент IPv6 для адреса IPv4.
Синтаксис
Аргумент
string
илиUInt128
— IP-адрес. Строка.
Возвращаемое значение
- IP-адрес. IPv6.
Примеры
Запрос:
Результат:
Запрос:
Результат:
toIPv6OrDefault
То же, что и toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает ::
(0 IPv6) или предоставленный адрес IPv6 по умолчанию.
Синтаксис
Аргумент
string
— IP-адрес. Строка.default
(опционально) — Значение, возвращаемое, еслиstring
имеет недопустимый формат. IPv6.
Возвращаемое значение
- Адрес IPv6 IPv6, в противном случае
::
или предоставленный необязательный по умолчанию, еслиstring
имеет недопустимый формат.
Пример
Запрос:
Результат:
toIPv6OrNull
То же, что и toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает null.
Синтаксис
Аргумент
string
— IP-адрес. Строка.
Возвращаемое значение
- IP-адрес. IPv6, или null, если
string
не является допустимым форматом.
Пример
Запрос:
Результат:
toIPv6OrZero
То же, что и toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает ::
.
Синтаксис
Аргумент
string
— IP-адрес. Строка.
Возвращаемое значение
- IP-адрес. IPv6, или
::
, еслиstring
не является допустимым форматом.
Пример
Запрос:
Результат:
IPv6StringToNumOrDefault(s)
То же, что и toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает 0.
IPv6StringToNumOrNull(s)
То же, что и toIPv6
, но если адрес IPv6 имеет недопустимый формат, возвращает null.
isIPv4String
Определяет, является ли входная строка адресом IPv4. Если string
является адресом IPv6, возвращает 0
.
Синтаксис
Аргументы
string
— IP-адрес. Строка.
Возвращаемое значение
1
, еслиstring
является адресом IPv4,0
в противном случае. UInt8.
Примеры
Запрос:
Результат:
isIPv6String
Определяет, является ли входная строка адресом IPv6. Если string
является адресом IPv4, возвращает 0
.
Синтаксис
Аргументы
string
— IP-адрес. Строка.
Возвращаемое значение
1
, еслиstring
является адресом IPv6,0
в противном случае. UInt8.
Примеры
Запрос:
Результат:
isIPAddressInRange
Определяет, содержится ли IP-адрес в сети, представленной в формате CIDR. Возвращает 1
, если верно, или 0
в противном случае.
Синтаксис
Эта функция принимает как адреса IPv4, так и IPv6 (и сети), представленные как строки. Она возвращает 0
, если версия IP адреса и CIDR не совпадают.
Аргументы
Возвращаемое значение
1
или0
. UInt8.
Пример
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: