Подтвердить что ты не робот

Найти доступные сетевые интерфейсы в C/C++?

Кто-нибудь знает код C/C++ для поиска доступных сетевых интерфейсов?

Я искал некоторый код, но в большинстве случаев они довольно сложны. Есть ли простой способ сделать это?

4b9b3361

Ответ 1

См. справочную страницу getifaddrs. Существует пример программы к концу.

Ответ 2

Если вы ищете это в контексте настольного приложения и хотите получать уведомления об изменениях (например, о подключении/отключении интерфейсов), рассмотрите возможность использования DBus для мониторинга NetworkManager.

http://projects.gnome.org/NetworkManager/developers/api/09/spec.html

Вы можете перечислять интерфейсы, а также специфичные для интерфейса вещи (например, доступные и подключенные точки доступа WiFi, настроенные, но не набранные PPP-ссылки и т.д.), и если что-то изменится, вы получите уведомление над DBus.

(Если это для чего-то более похожего на серверную программу, где вы ожидаете, что конфигурация сети будет оставаться более стабильной, возможно, более подходящими могут быть такие вещи, как getifaddrs.)