Netzwerk Behandlung



  • Hallo Leute ich wollte gerne ein Programm schreiben die meine Netzwerkverbindungen automatisch neu Konfiguriert.
    Also das heißt meinem Netzwerk Adapter eine neue Ip zuweisen die ich vorher bestimmt habe sowie ein neues Gateway und DNS SERVER.
    Gibt es rein Zufällig Winapi Funktione dafür, wenn ja welche?
    Wenn nein, wie kann ich es trotzdem machen?
    Vielen Dank



  • AFAIK gibt es dafür nichts, aber das wäre mit nem Treiber eigentlich realisierbar.



  • Die IP-Adressen sind in der regedit gespeichert. Such dort einfach mal nach der IP-Adresse, die Du momentan hast. Dann wirst Du bestimmt fündig.

    Müsste unter HKEY_LOCAL_MACHINE -> SYSTEM sein.



  • Du kannst auch z.B. die ipconfig.exe von deiner anwendung aufrufen...



  • KÖNNTE mit der IP Helper API gehen



  • He super die Idee mit der Regestrie
    das ist natürlich machbar und irgendwie kein Problem mehr
    thx @napsio und den anderen



  • Natürlich geht das.

    Musst den netsh befehl ausführen.

    so: (für mehr schau dir den netsh befehl an)

    // TODO: Addressen setzen
    
    STARTUPINFO sinfo;
    PROCESS_INFORMATION pinfo;
    
    char* buffer[1000];
    sprintf(buffer, "netsh interface ip set address name=\"%s\" source=static addr=%s mask=%s gateway=%s gwmetric", adaptername, ipadr, ipsubnetmsk, gateway);
    
    ZeroMemory( &sinfo, sizeof(STARTUPINFO));
    sinfo.cb = sizeof(STARTUPINFO);
    sinfo.wShowWindow=SW_HIDE;
    sinfo.dwFlags=STARTF_USESIZE|STARTF_USESHOWWINDOW;
    sinfo.dwXSize=0;
    sinfo.dwYSize=0;
    ZeroMemory( &pinfo, sizeof(PROCESS_INFORMATION) );
    
    if( !CreateProcess( NULL, // name
    		buffer,// Command
    		NULL,
    		NULL,  
    		FALSE,
    		0,// no
    		NULL, // parent
    		NULL,// parent
    		&sinfo,
    		&pinfo )
    ) {
    	// TODO: Error
    }
    
    // Wait for exit.
    WaitForSingleObject( pinfo.hProcess, INFINITE );
    CloseHandle( pinfo.hProcess );
    CloseHandle( pinfo.hThread );
    

Anmelden zum Antworten