Wie kann ich programmtechnisch ermitteln Sie die IP-Adresse/Netzmaske/gateway konfiguriert für einen bestimmten Netzwerk-Gerät in Linux?

Ich würde gerne schreiben ein Stück code, die überprüft, für die jedes Netzwerkgerät (z.B. eth0, lo, master-Geräte) einige Statistik-und Konfigurations-Daten über das Gerät.

Ich könnte die Statistik-Daten (und ein Großteil der Konfiguration, Daten) in /sys/class/net/..., allerdings, ich konnte nicht finden, dass jede C/C++ - API oder eine Eintrag im procfs/sysfs Auflistung der inet-Adresse, Netzmaske und gateway.

Einige alternativen, die ich geprüft:

  • Parsen der Ausgabe von ifconfig/route/einige andere Dienstprogramme: ich will nicht zu starten, ein subprocess jedes mal, wenn ich brauche zu tun, die Inspektion.
  • Parsen von /etc/sysconfig/network-scripts/: wird mir nur die start-up-Konfiguration, und nicht den aktuellen Stand.

Auch, da dieser code soll für ein Produkt in meinem Arbeitsplatz, wo jede externe Bibliothek wird geprüft, gründlich (was bedeutet, es wird mich für immer hinzufügen, externe Bibliothek) ich habe lieber Lösungen, die darauf angewiesen sind native Linux-API und keine externen Bibliotheken.

Dank!

InformationsquelleAutor Oren S | 2010-06-07
Schreibe einen Kommentar