Interfacetyp erkennen
-
Hi, vielleicht könnt ihr mir bei meinem Problem helfen. Ich lese von meinem C-Programm alle verfügbaren Interfaces (eth1, ...) aus. Leider finde ich keinen Weg die Art (WLAN, LAN, Bluetooth ...) des Interfaces sicher feststellen zu können. Gibt es da eine sichere Möglichket, die sich nicht am Namen des Interfaces, bzw. dem verwendeten Treiber orientiert?
Grüsse
Denkdirnix
-
Zumindest unter Fedora findet sich die Netzwerk-Konfiguration z.B. für eth0 unter
/etc/sysconfig/networking/devices/ifcfg-eth0
. Dort steht auch der Typ des Gerätes drin.
Ob dieser Speicherort aber z.B. durch die Linux Standard Base vorgegeben ist und damit einen (weitgehend) distributionsunabhängigen Weg darstellt oder von Distribution zu Distribution unterschiedlich ist, weiß ich leider nicht.
-
Leider kann ich mich nicht immer darauf verlassen, dass Interfacetype in den ifcfg- files gesetzt ist. Hab mir eben mal die ifcfg skripte angeschaut und leider ist der Interface-Typ nicht immer erkennbar.
Momentan frage ich per ioctl die wireless extensions (SIOCGIWNAME) fürs WLAN und hcitools (HCIGETDEVLIST) für Bluetooth ab. Sicherlich nicht der beste Weg und zudem (so viel ich weiss) nicht machbar für LAN und UMTS. Leider finde ich aber bisher keine bessere Möglichkeit.Grüsse
Denkdirnix
-
ich weiss nicht genau wie aber schau dich mal unter /proc/net um.
vielleicht hilft dir das ja weiter.