IP-Adresse von einem Prozess aus ändern
-
Hallo zusammen,
ich möchte es einem Prozess ermöglichen, die IP-Adresse meines Linux-Rechners auszulesen und sie zu verändern. Ich möchte nicht über die Konsole auf eth0 (mit IFCONFIG) zugreifen, sondern eben über ein C-Progrämmchen (nur nochmal zur Sicherhheit *g*). Kann mir da jemand grob beschreiben, wie sowas geht (Funktionsaufrufe, Links,....)?
Danke Euch
Gruß
-
Mit man: ioctl(2) funktioniert das.
Im Zweifelsfall schau dir doch einfach den Quellcode von ifconfig und den /usr/include/bits/ioctls.h-Header an
-
kann man die IP mit ioctl auch dauerhaft ändern?
Ich hatte ein ähnliches Problem und habs so gemacht das ich die Einträge in der Datei /etc/networking/interfaces auslesen und ändern kann. Anschliessend dann /etc/init.d/networking restart. Ist so bei Debian. Bei anderen Distris funktioniert es eventuell anders...Grüße
MatthiasFunktioniert natürlich nur wenn Du kein DHCP benutzt...
-
matthiashh schrieb:
kann man die IP mit ioctl auch dauerhaft ändern?
Nope, das wäre verdammt unpraktisch.
Dauerhaft ändern kannst Du in der Tat nur, indem Du die Netzwerk-Konfiguration, die Deine Init-Skripte lesen, änderst.
-
Hi und danke für die Ideen,
ich habe das Problem inzwischen gelöst, allerdings muss ich noch die Gateway-Adresse auslesen und setzen können. Das geht weder mit ifconfig, noch mit ioctl(). Die einzige Möglichkeit, sie auszulesen, die ich kenne, ist,
route -n >> temp_datei
zu nutzen und im Inhalt von temp_datei nach der Gateway-Adressen zu suchen. Ist aber 1. sehr mühsam und 2. weiß ich noch immer nicht, wie ich die Gateway-adresse setzen kann....
könnt ihr mir nochmal helfen???
Danke
-
Dann schau doch mal in die Sourcen von "route". Unter Debian einfach mal ein "apt-get source net-tools" eingeben.