Функции для работы с IP-адресами
Бесклассовая междоменная маршрутизация (Classless Inter-Domain Routing (CIDR)) – способ назначения и указания Internet-адресов, используемый в междоменной маршрутизации. Он более гибок, чем первоначальная система классов адресов, принятая в Internet-протоколе (IP). При использовании CIDR каждый IP-адрес имеет сетевой префикс, который определяет либо совокупность сетевых узлов, либо индивидуальный узел. Длина сетевого префикса задаётся как часть IP-адреса и варьируется в зависимости от количества необходимых бит. IP-адрес пункта назначения или маршрут, который указывает несколько адресатов, имеет короткий префикс (менее точная адресация). Длинный префикс описывает узел сети более точно.
Внешнее представление сетевого адреса при использовании CIDR выглядит так:
192.30.250.00/18
«192.30.250.00» есть сам сетевой CIDR IP-адрес. «18» означает, что первые 18 бит есть сетевая часть адреса, оставшиеся 14 бит задают адреса хостов.
Внутреннее представление IP-адреса – BYTE(5). Из них 4 байта занимает собственно сетевой адрес, а 1 байт отводится под размер префикса. Значение префикса может быть в диапазоне от 1 до 32.
Аргументы функций могут быть заданы < SQL-параметром >
, который должен содержать спецификацию типа данных параметра, например:
select cidrtoraw(? (char(16))); 192.30.250.00/18 | C0 1E FA 00 12| select ip_set_masklen(? (byte(5)), ? (int)); 5052200b0a 21 | 50 52 20 0B 15|
- Преобразование внешнего представления CIDR IP-адреса во внутреннее
- Преобразование внутреннего представления CIDR IP-адреса во внешнее
- Определение длины префикса CIDR IP-адреса
- Установка новой длины префикса CIDR IP-адреса
- Определение CIDR IP-адреса без длины префикса
- Определение CIDR IP-адреса для совместимости с PostgreSQL
- Проверка адреса по адресной маске
- Определение количества IP-адресов
- Выделение сетевого адреса со сбросом бит префикса
- Выделение сетевого адреса
- Выделение сетевого адреса с установкой бит префикса
- Выделение сетевого адреса с установкой бит префикса для совместимости с PostgreSQL
- Выделение маски сети
- Выделение сокращенного IP-адреса