Функции для работы с IP-адресами
IPv4NumToString(num)
Принимает число типа UInt32. Интерпретирует его, как IPv4-адрес в big endian. Возвращает строку, содержащую соответствующий IPv4-адрес в формате A.B.C.D (числа в десятичной форме через точки).
Синоним: INET_NTOA
.
IPv4StringToNum(s)
Функция, обратная к IPv4NumToString. Если IPv4 адрес в неправильном формате, то возвращает 0.
Синоним: INET_ATON
.
IPv4NumToStringClassC(num)
Похоже на IPv4NumToString, но вместо последнего октета используется xxx.
Пример:
В связи с тем, что использование xxx весьма необычно, это может быть изменено в дальнейшем. Вам не следует полагаться на конкретный вид этого фрагмента.
IPv6NumToString(x)
Принимает значение типа FixedString(16), содержащее IPv6-адрес в бинарном виде. Возвращает строку, содержащую этот адрес в текстовом виде. IPv6-mapped IPv4 адреса выводится в формате ::ffff:111.222.33.44.
Примеры: INET6_NTOA
.
Примеры:
IPv6StringToNum
Функция, обратная к IPv6NumToString. Если IPv6 адрес передан в неправильном формате, то возвращает строку из нулевых байт.
Если IP адрес является корректным IPv4 адресом, функция возвращает его IPv6 эквивалент.
HEX может быть в любом регистре.
Синоним: INET6_ATON
.
Синтаксис
Аргумент
string
— IP адрес. String.
Возвращаемое значение
- Адрес IPv6 в двоичном представлении.
Тип: FixedString(16).
Пример
Запрос:
Результат:
Смотрите также
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(string)
Псевдоним функции IPv4StringToNum()
которая принимает строку с адресом IPv4 и возвращает значение типа IPv4, которое равно значению, возвращаемому функцией IPv4StringToNum()
.
toIPv6
Приводит строку с адресом в формате IPv6 к типу IPv6. Возвращает пустое значение, если входящая строка не является корректным IP адресом. Похоже на функцию IPv6StringToNum, которая представляет адрес IPv6 в двоичном виде.
Если входящая строка содержит корректный IPv4 адрес, функция возвращает его IPv6 эквивалент.
Синтаксис
Аргумент
string
— IP адрес. String
Возвращаемое значение
- IP адрес.
Тип: IPv6.
Примеры
Запрос:
Результат:
Запрос:
Результат:
isIPv4String
Определяет, является ли строка адресом IPv4 или нет. Также вернет 0
, если string
— адрес IPv6.
Синтаксис
Аргументы
string
— IP адрес. String.
Возвращаемое значение
1
еслиstring
является адресом IPv4 , иначе —0
.
Тип: UInt8.
Примеры
Запрос:
Результат:
isIPv6String
Определяет, является ли строка адресом IPv6 или нет. Также вернет 0
, если string
— адрес IPv4.
Синтаксис
Аргументы
string
— IP адрес. String.
Возвращаемое значение
1
еслиstring
является адресом IPv6 , иначе —0
.
Тип: UInt8.
Примеры
Запрос:
Результат:
isIPAddressInRange
Проверяет, попадает ли IP адрес в интервал, заданный в нотации CIDR.
Синтаксис
Функция принимает IPv4 или IPv6 адрес виде строки. Возвращает 0
, если версия адреса и интервала не совпадают.
Аргументы
address
— IPv4 или IPv6 адрес. String.prefix
— IPv4 или IPv6 подсеть, заданная в нотации CIDR. String.
Возвращаемое значение
1
или0
.
Тип: UInt8.
Примеры
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат: