libmgr
Пространство имен mgr_ipdb

Классы

class  aIpList
 
class  Allocator
 
class  Deleter
 
class  IpAliasTable
 Средства для добавления списка IP-адресов к услугам. (Пример: список IP-адресов виртуальной машины) Подробнее...
 

Определения типов

typedef std::list< StringPair > StringPairList
 

Перечисления

enum  InfoLevel { ilSimple = 0, ilComplex = 1, ilAuto = 2 }
 Набор флагов определяющих режим работы модуля работы с IP-адресами Подробнее...
 
enum  IPDBType { dbLocal = 0, dbRemote = 1 }
 Тип используемой базы IP-адресов. Подробнее...
 

Функции

IPDB_API IPDBType GetCurrentType ()
 
IPDB_API void Init (const string &iptype, int info_level=ilSimple)
 Используется для инициализации модуля работы с IP-адресами Подробнее...
 
IPDB_API void RegisterLocal (const string &iptype)
 Занести локальные адреса в базу адресов Подробнее...
 
IPDB_API string GetDomain (const string &ip)
 Возвращает доменное имя, которое закреплено за указанным IP-адресом Подробнее...
 
IPDB_API void SetDomain (const string &ip, const string &domain)
 Устанавливает доменное имя для указанного IP-адреса Подробнее...
 
IPDB_API void NetworkInfo (const string &ip, string &netmask, string &gateway)
 Получает шлюз и маску сети для указанного IP-адреса Подробнее...
 
IPDB_API void Import4 (const string &manager, const StringMap &allocatedip)
 Производит импорт данных из старого панелей управления, которые используют 4 версию ядра Подробнее...
 
IPDB_API StringPairList GetAvailableNetworks ()
 Возвращает список, состоящий из пар сеть:тип_сети Подробнее...
 
Получение свободного IP-адреса заданного типа
Аргументы
[in]familyУказывает тип возвращаемого IP-адреса(AF_INET или AF_INET6)
[in]domainДоменное имя, которое закрепляется за выдаваемым IP-адресом
[in]ip_typeТип выдаваемого IP-адреса. Если не указан, то будет использован тип по-умолчанию из Init()
[in]ipВыделяется указанный адрес. Если значение не указано, то будет выделен первый свободный адрес
[in]pref_networkПредпочитаемая сеть, в которой будет выполнена попытка выделения адреса
[in]iface_bindУказывает, необходимо ли закрепить адрес на реальном сетевом интерфейсе
[in]resultФункция AllocIpBlock позволяет выделить подряд идущие адреса, которые могут быть объеденены в одну подсеть с максимально возможной маской. Количество выделяемых адресов определяется размером вектора
Возвращает
В случае, если свободный IP-адрес есть, то возвращается его значение в виде строке В противном случае, генерится ошибка, сообщающая о том, что свободных адресов нет
IPDB_API void AllocIpBlock (const string &pref_network, int family, const string &domain, StringVector *result, const string &ip_type="", bool iface_bind=false)
 
IPDB_API string AllocIp (int family, const string &domain, const string &ip_type="", const string &ip="", bool iface_bind=false)
 
IPDB_API string AllocIpPrefNet (const string &pref_network, const string &domain, const string &ip_type="", bool iface_bind=false)
 
Освобождение ранее выданного IP-адреса
Аргументы
[in]ipIP-адрес, который необходимо освободить
[in]iface_unbindУказывает, необходимо ли удалять адрес с реального сетевого интерфейса
IPDB_API void FreeIp (const string &ip, bool iface_unbind=false)
 

Типы

◆ StringPairList

typedef std::list<StringPair> mgr_ipdb::StringPairList

См. определение в файле ipdb.h строка 165

Перечисления

◆ InfoLevel

Набор флагов определяющих режим работы модуля работы с IP-адресами

Элементы перечислений
ilSimple 

Модуль работы с IP-адресами не отображает и не позволяет задавать маску сети, адрес шлюза для создаваемых диапазонов

ilComplex 

Добавляется отображение и возможность изменения маски сети, адреса шлюза

ilAuto 

При использовании локальной базы новые адреса будут добавляться в нее автоматически

См. определение в файле ipdb.h строка 29

◆ IPDBType

Тип используемой базы IP-адресов.

Элементы перечислений
dbLocal 

Локальная база.

dbRemote 

Интеграция с IPmanager.

См. определение в файле ipdb.h строка 38

Функции

◆ AllocIp()

IPDB_API string mgr_ipdb::AllocIp ( int  family,
const string &  domain,
const string &  ip_type = "",
const string &  ip = "",
bool  iface_bind = false 
)

◆ AllocIpBlock()

IPDB_API void mgr_ipdb::AllocIpBlock ( const string &  pref_network,
int  family,
const string &  domain,
StringVector *  result,
const string &  ip_type = "",
bool  iface_bind = false 
)

◆ AllocIpPrefNet()

IPDB_API string mgr_ipdb::AllocIpPrefNet ( const string &  pref_network,
const string &  domain,
const string &  ip_type = "",
bool  iface_bind = false 
)

◆ FreeIp()

IPDB_API void mgr_ipdb::FreeIp ( const string &  ip,
bool  iface_unbind = false 
)

◆ GetAvailableNetworks()

IPDB_API StringPairList mgr_ipdb::GetAvailableNetworks ( )

Возвращает список, состоящий из пар сеть:тип_сети

Отображаются только те сети, в которых есть не занятые адреса

◆ GetCurrentType()

IPDB_API IPDBType mgr_ipdb::GetCurrentType ( )

◆ GetDomain()

IPDB_API string mgr_ipdb::GetDomain ( const string &  ip)

Возвращает доменное имя, которое закреплено за указанным IP-адресом

Аргументы
[in]ipIP-адрес для которого необходимо вернуть доменное имя
Возвращает
Доменное имя закрепленное за указанным IP-адресом
Предупреждения
В случае, если указанный IP-адрес не найден, возвращается пустая строка

◆ Import4()

IPDB_API void mgr_ipdb::Import4 ( const string &  manager,
const StringMap &  allocatedip 
)

Производит импорт данных из старого панелей управления, которые используют 4 версию ядра

Аргументы
[in]managerимя менеджера (например, dnsmgr)
[in]allocatedipсодержащит пары <выделенный IP-адрес, доменное имя>

◆ Init()

IPDB_API void mgr_ipdb::Init ( const string &  iptype,
int  info_level = ilSimple 
)

Используется для инициализации модуля работы с IP-адресами

Аргументы
[in]iptypeСписок типов IP-адресов, разделенных пробелами, которые будут использоваться (Пример: "primary alias") Первый тип из списка используется как тип по-умолчанию при выполнении AllocIp() без явного указания типа
[in]info_levelНабор флагов из множества InfoLevel
Пример использования:
// Необходимо, чтобы панель работала с IP-адресами типов ds, dns. И используемым по умолчанию типом был ds
// Также, необходимо, чтобы в работе с диапазонами, созданными локально, можно было указывать шлюз и маску сети

◆ NetworkInfo()

IPDB_API void mgr_ipdb::NetworkInfo ( const string &  ip,
string &  netmask,
string &  gateway 
)

Получает шлюз и маску сети для указанного IP-адреса

Аргументы
[in]ipIP-адрес для которого необходимо вернуть шлюз и маску сети
[in]netmaskмаска сети к которой принадлежит заданный IP-адрес
[in]gatewayшлюз сети к которой принадлежит заданный IP-адрес
Предупреждения
В случае, если указанный IP-адрес не найден, возникает ошибка

◆ RegisterLocal()

IPDB_API void mgr_ipdb::RegisterLocal ( const string &  iptype)

Занести локальные адреса в базу адресов

В дальнейшем с локальными адреами можно будет работать, как с любыми другими. При получении адреса функцией AllocIp, система не будет пытаться привязать его к интерфейсу. Соответственно при освобождении адреса через FreeIp, адрес останется привязанным к интерфейсу.

Внимание
Может быть использован только при работе с локальной базой адресов
Аргументы
[in]iptypeТип, с которым следует ассоциировать адреса

◆ SetDomain()

IPDB_API void mgr_ipdb::SetDomain ( const string &  ip,
const string &  domain 
)

Устанавливает доменное имя для указанного IP-адреса

Аргументы
[in]ipIP-адрес для которого необходимо установить доменное имя
[in]domainДоменное имя, которое будет закреплено за указанным IP-адресом
Предупреждения
В случае, если указанный IP-адрес не найден, возникает ошибка