Comment puis-je rechercher par programmation de l'adresse IP/masque/passerelle configurée pour un périphérique réseau sous Linux?

Je voudrais écrire un morceau de code qui vérifie, pour chaque périphérique réseau (par exemple, eth0, lo, maître périphériques) quelques statistiques et les données de configuration sur le périphérique.

J'ai pu retrouver les données de la statistique de (et la plupart des données de configuration dans /sys/class/net/... cependant, je ne pouvais pas trouver toutes les API C/C++ ou toute entrée dans procfs/sysfs inscription de l'inet addr, le masque réseau et la passerelle.

Quelques solutions de rechange que j'ai vérifié:

  • l'analyse de la sortie de ifconfig/route/quelques autres utilitaires: je ne veux pas commencer un sous-processus à chaque fois que j'ai besoin pour faire l'inspection.
  • analyse /etc/sysconfig/network-scripts/: me donnera seulement le démarrage de la configuration, et pas l'état actuel.

Aussi, étant donné que ce code est prévu pour un produit dans mon lieu de travail, où chaque bibliothèque externe est inspecté à fond (ce qui signifie qu'il va me prendre une éternité pour ajouter toute une bibliothèque externe) je préfère les solutions qui s'appuient sur Linux API native et non des bibliothèques externes.

Merci!

Comme aucune réponse ne traite de la façon d'obtenir de la passerelle(s). Vous trouverez la réponse ici: stackoverflow.com/a/28322370/694576

OriginalL'auteur Oren S | 2010-06-07