Siehe die Manpage getifaddrs. Gegen Ende gibt es ein Beispielprogramm.
Wenn Sie im Zusammenhang mit einer Desktop-Anwendung danach suchen und über Änderungen benachrichtigt werden möchten (z. B. Schnittstellen verbinden/trennen), ziehen Sie die Verwendung von DBus zur Überwachung von NetworkManager in Betracht.
http://projects.gnome.org/NetworkManager/developers/api/09/spec.html
Sie können Schnittstellen sowie schnittstellenspezifische Dinge (wie verfügbare und verbundene WiFi-Zugangspunkte, konfigurierte, aber nicht gewählte PPP-Verbindungen usw.) auflisten, und wenn sich etwas ändert, erhalten Sie eine Benachrichtigung über den DBus .
(Wenn dies eher für ein Serverprogramm ist, bei dem Sie erwarten, dass die Netzwerkkonfiguration stabiler bleibt, dann sind Dinge wie getifaddrs
sind möglicherweise besser geeignet.)