Я знаю, что я могу сделать это в Windows, используя AddIPAddress но мне интересно, если есть кроссплатформенный (хотелось бы, если бы я мог использовать boost, так как я уже в этом проекте) способ добавить IP-адрес для конкретного сетевого адаптера?
Пример:
UINT iaIPAddress;
UINT iaIPMask;
iaIPAddress = inet_addr("192.168.0.5");
iaIPMask = inet_addr("255.255.255.0");
dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex,
&NTEContext, &NTEInstance);
if (dwRetVal != NO_ERROR) {
printf("AddIPAddress call failed with %d\n", dwRetVal);
}
Это работает на Windows, но как я могу сделать то же самое на Linux?
Здесь ничего нет.
Boost обеспечивает независимость от платформы, абстрагируя интерфейсы ОС и позволяя ОС взаимодействовать с оборудованием
Следовательно, Boost не имеет библиотек для управления системой или периферийного контроля.
Есть библиотеки, окружающие услуги операционной системы это может быть связанный с определенными устройствами (такими как ресурсы ЦП (потоки, планирование, IPC и синхронизация), файловые системы и сетевые службы), но они остаются на этом уровне абстракции.
Нет библиотеки Boost для облегчения записи драйверов файловой системы, управления таблицами разделов GPT, явного управления созданием разреженных файлов или секторов TRIM на дисках SSD.
Аналогично, нет библиотеки Boost для захвата необработанных TCP-пакетов или перевода вашего дисплея в графический режим.