Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Routing Eintrag lesen (socket)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.06.2005, 10:31 Uhr
~Ölie
Gast


Hallo
Hat jemand Kenntnisse über das Auswerten der Routing-Tabelle unter Linux. Mit Hilfe von socket-Funktionen möchte ich wissen, welcher Gateway momentan gesetzt ist. Das Ganze soll später in einem C-Programm zur Weiterverarbeitung verwendet werden. Deshalb wäre es schön, wenn mir jemand einen Ansatz - in Form eines kleinen C-Programms - weiterhelfen könnte.

Gruß Ölie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.06.2005, 12:55 Uhr
virtual
Sexiest Bit alive
(Operator)


Das machjt man mittels ioctl Funktionen: ein Socket öffnen und dann mit dem Socket die entsprechende ioctl Funktion aufrufen. Welche das im Einzelnen sind, weiß ich nicht aus dem Kopf. Generell wirst Du aber mindestens zwei brauchen:
1. ein ioctl Aufruf um an die verschiedenen Netzwerkinterfaces heranzu kommen,
2. ein ioctl Aufruf um an die Routing Einträge hernzukommen.

Der Weg ist ein wenig Steinig, deshalb mag es sinnvoller sein, einfach ifconfig aufzurufen und das Ergebnis zu parsen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.06.2005, 13:42 Uhr
~Ölie
Gast


Hallo virtual,
danke für deine schnelle Antwort.

Mit Hilfe der ioctl-Funktionen kann ich leider nur die Route setzen oder löschen, - SIOCADDRT und SIOCDELRT siehe W. Richard Stevens PvUN Seite 420. Was mich interessiert ist aber lediglich der momentan gesetzte Gateway. Hierzu ist kein entsprechender request für die ioctl-Funktion zu finden. dummerweise!!!!

Unter ifconfig wird der verwendete Gateway nicht angezeigt, du meinst wahrscheinlich route -n.

Gruß Ölie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.06.2005, 21:57 Uhr
virtual
Sexiest Bit alive
(Operator)


Oh ja, du hast recht...
Aber guck mal:

Code:
joe@ebola:~> /sbin/route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
link-local      *               255.255.0.0     U     0      0        0 eth0
10.0.0.0        *               255.0.0.0       U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
[b]default         10.1.1.100      0.0.0.0         UG    0      0        0 eth0[/b]


Also entweder
1. Ausgabe des Commands parsen oder
2. Quellcode des Commands angucken oder
3. mittels strace gucken, was das Kommando macht (vermutlich /proc/net/route auslesen)
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.06.2005, 21:59 Uhr
virtual
Sexiest Bit alive
(Operator)


Ach, da fällt mir ein:
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: