Toon posts:

[Delphi] Veranderen IP-Adres

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allen,

Ik ben bezig met het programeren van een IP-Manager. De bedoeling is als volgt: Een gebruiker gebruikt een computer op meerdere werkplekken. De gebruiker is ook aan het netwerk gekoppeld. Probleem is echter dat op elke werkplek de IP-Settings anders zijn. Daarom de IP-Manager.

Het principe is vrij simpel. Er worden bij installatie een aantal zogenaamde IP-Profielen aan gemaakt met settings. Op het moment dat een gebruiker dan van werkplek wisselt hoeft hij uitsluitend het juiste profiel te selecteren. Het programma zorgt er dan voor dat TCP/IP juist geconfigureerd wordt.

Het programma is nu grotendeels af. Er is echter nog een probleem: Hoe verander ik de IP-settings via mijn programma? Ik weet dat de setting in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{GUID} in het registry staan. Nu is het natuurlijk helemaal niet moeilijk om wijzigingen aan te brengen in het registry. Het probleem is echter: Hoe verkrijg ik het juiste pad naar de settings van de betreffende NIC. Hoe verkrijg ik het {GUID} :? ? Voor zover ik weet staat GUID voor Global User IDentification, en is deze op elke computer bij elke netwerkkaard anders

Weet iemand hier een oplossing voor. Of weet iemand misschien of hier een kant en klare function voor bestaat.

PS. Het programma moet gaan werken onder windows 2000.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

GUID=Global Unique IDentifier
Gewoon een random string die (meestal) uniek is in dit universum.

Het korte antwoord:
Kijk even naar HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"netcard# "

Het lange antwoord
Er bestaan kant en klare programma's die doen wat jij wil :) En die doen het nog voordat windows opgestart is. Ook zou je misschien meerdere hardware profielen kunnen aanmaken met als enige verschil de ip instellingen.

Het veranderen van het ip in het registry is niet genoeg. Je zal opnieuw moeten opstarten en dat is niet wat je wilt denk ik. Je zou ook de netwerk interface down en dan weer up kunnen berengen. Misschien dat de ungedocumenteerde functie DhcpNotifyConfigChange helpt.

Veder gebruikt je hier ControlSet001 terwijl er meerdere kunnen zijn. Beter is CurrentControl set te gebruiken.

Ik heb ook altijd begrepen dat het onder win2000 niet meer mogelijk is op die manier die jij beschrijft je ip adres te veranderen, maar ik kan het mishebben. Heb je het al eens handmatig uitgeprobeerd? De win2k util netsh kan het wel en zou je via shellexecute aan kunnen roepen.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
oke. Ik ga dus netsh gebruiken. Nu heb ik gelijk een andere vraag. hoe verkrijg ik de naam van het interface dat ik aan moet passen? Ik heb namelijk al tal van namen geprobeerd. Als ik bevoorbeeld dit doe in netsh: add address "Local Area Connection" 10.0.0.1 255.0.0.0" krijg ik "invalid interface terug"

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Probeer eens msdn.microsoft.com of 'netsh interface ip set address /?'

We adore chaos because we like to restore order - M.C. Escher