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
    Matthias

    Funktioniert 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.


Anmelden zum Antworten