Tool programmieren um IP-Adresse der Netzwerkkarte zu ändern



  • Hallo,

    mit meinem Laptop auf der Arbeit muss ich häufiger an irgenwelche Geräte mit festen IP Adressen, oft auch über Crossover Kabel. Jedesmal muss ich die Eigenschaften des Netzwerkes aufrufen und von Hand dort die entsprechenden Einstellungen vornehmen. Wenn ich mich dann wieder im Firmennetzwerk bewege muss ich alles auf DHCP Server zurückstellen. Ich würde mir nun gerne eine Grafische Oberfläche programmieren in der ich einige Konfigurationen abspeichere und diese dann per Mausklick lade. Welche API muss ich denn benutzen damit mein Tool unter XP, Vista und Win 7 funktioniert?
    Bei Vista und Win 7 mit UAC werde ich wohl ein Admin Manifest mit einbinden müssen?
    In irgendwelchen Foren habe ich gelesen, dass man unter Windows mit dem Befehl "netsh" wohl all diese Sachen setzen kann, d.h. wenn ich den Adapternahmen irgendwie ermitteln kann, könnte ich dann durch Aufruf von "netsh" die erforderlichen Einstellungen vornehmen. Vieleicht ist mein Denkansatz auch falsch oder zu kompliziert. Für Tips zur Verwirklichung des Programms wäre ich sehr dankbar.

    Es gibt wohl das eine oder ander Programm im Internet das das wohl kann, Ich würd mir aber das Tool gerne selber schreiben. Achja die Programmierung der Oberfläche per Winapi ist nicht das Problem, sondern das was unter der Haube steckt. Wenn ich also hier im falschen Forum nachfrage, dann verschiebt mich bitte ins richtige Forum, danke.





  • Bin gerade dabei mit meinem Programm die Netzwerkdaten zu sammeln, dabei stehe ich z.Z vor folgendem Problem. Unter den Eigenschaften für eine Netzwerkkarte gibt es ja die Radiobuttons "DNS Server automatisch beziehen" und "folgende DNS Server verwenden", leider habe ich keinen Weg mit der Winapi gefunden wie ich feststellen kann welcher der beiden Einträgen für nun aktiv ist.

    Mit dem Aufruf GetAdaptersInfo(..) habe ich mir entsprechende Infos zu den verbauten Netzwerkkarten geholt. In der Struktur "IP_ADAPTER_INFO" sind keine Infos hierzu hinterlegt. Mit GetNetworkParams(..) hab ich mir weitere Informationen geholt. In der Struktur "FIXED_INFO" sind auch die/der DNS Server hinterlegt. Leider zeigt mir das Strukturmember "EnableDns" immer "0" an. Das Strukturmember "DnsServerList" ist mit gültigen Informationen gefüllt.

    Jetzt hab ich mal zwei Sachen ausprobiert


    Ergebniss: als DNS Server ist mein Router in "DnsServerList" eingetragen


    Ergebniss als DNS Server sind meine manuell eingetragenen Addressen in "DnsServerList" eingetragen

    Wie bekomme ich aber raus ob


    oder

    aktiviert ist?


Anmelden zum Antworten