Vedere la pagina man di getifaddrs. C'è un programma di esempio verso la fine.
Se stai cercando questo nel contesto di un'applicazione desktop e vuoi essere avvisato delle modifiche (ad es. Interfacce che si connettono/disconnettono), prendi in considerazione l'utilizzo di DBus per monitorare NetworkManager.
http://projects.gnome.org/NetworkManager/developers/api/09/spec.html
Puoi enumerare le interfacce, così come cose specifiche dell'interfaccia (come punti di accesso WiFi disponibili e connessi, collegamenti PPP configurati ma non composti e così via), e se qualcosa cambia, riceverai una notifica sul DBus .
(Se questo è per qualcosa di più simile a un programma server, in cui ti aspetti che la configurazione di rete rimanga più stabile, allora cose come getifaddrs
sono forse più appropriati.)