Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IP Äandern von Fest zu DHCP und umgekehrt (https://www.delphipraxis.net/78399-ip-aeandern-von-fest-zu-dhcp-und-umgekehrt.html)

hedie 4. Okt 2006 13:26


IP Äandern von Fest zu DHCP und umgekehrt
 
Hallo

Ich möchte die IP eines Dratlosen Netzwerkadapter von Fest (Die IP soll ich definieren können)
zu DHCP Routing also zu Dynamisch umschalten können. Wie kann ich dies Realisieren?



Liebe Grüsse
Claudio

Union 4. Okt 2006 13:29

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Du möchstest sicherlich nicht die IP des Routers dynamisch machen sondern den im Router integrierten DHCP-Server aktivieren. Das geht normalerweise über ein Web-Interface (einfach Adresse des Routers in der Adressleiste des IE eingeben).

hedie 4. Okt 2006 13:31

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Weder Noch

Ich möchte die IP Einstellungen des DratlosenAdapter WLAN Karte Etc. auf meinem PC ändern

Ultimator 4. Okt 2006 14:30

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Geht problemlos per WMI. Ich hätte hier nen C#-Code, der genau das macht, aber ich glaub, das ist nicht, was du möchtest :stupid: Wenn doch, sag Bescheid ;)
Schau dir mal die WMI-Klasse Win32_NetworkAdapterConfiguration an. Dort gibts die Methoden EnableDHCP und EnableStatic. Mit der SetGateways-Methode kannst du ggf. auch ein Standardgateway angeben.

Hoffe geholfen zu haben,

Ultimator

hedie 4. Okt 2006 14:52

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Danke aber ich brauche "leider" einen Delphi Code

Also wenn hier jemand einen hat oder sich damit auskennt bitte melden. danke

grüsse

x000x 6. Okt 2006 01:29

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Moin,
Delphi-Quellcode:
{..}

uses {..,} ComObj, ActiveX;

{..} 

function ChangeIPAddress(const szConnID, szIPAddress, szSubnetMask, szGateway: String): Boolean;
var
   SWbem,
   SWbemCon,
   SWbemQuery,
   objVar          : OleVariant;
   szWQL           : String;
   pFetched        : LongInt;
   unknown         : IUnknown;
   enumUnk         : IEnumUnknown;
   szMacAddr       : String;
   varIPAddress    : Variant;
   varSubnetMask   : Variant;
   varGateway      : Variant;
   varGatewayMetric : Variant;
begin
   Result := False;
   CoInitialize(nil);
   try
      varIPAddress       := VarArrayCreate([0, 0], varOleStr);
      varIPAddress[0]    := szIPAddress;

      varSubnetMask      := VarArrayCreate([0, 0], varOleStr);
      varSubnetMask[0]   := szSubnetMask;

      varGateway         := VarArrayCreate([0, 0], varOleStr);
      varGateway[0]      := szGateway;

      varGatewayMetric   := VarArrayCreate([0, 0], varInteger);
      varGatewayMetric[0] := 1;

      SWbem     := CreateOleObject('WbemScripting.SWbemLocator');
      // strServer, strNamespace, strUser, strPassword, strLocale, strAuthority,
      // iSecurityFlags, objwbemNamedValueSet
      SWbemCon  := SWbem.ConnectServer('.', 'root\cimv2', '', '', '');
      szWQL     := 'Select * From Win32_NetworkAdapter'+
                    ' Where NetConnectionID = ''' + szConnID + '''';
      SWbemQuery := SWbemCon.ExecQuery(szWQL);
      unknown   := SWbemQuery._NewEnum;
      unknown.QueryInterface(IEnumVariant, enumUnk);
      if (enumUnk.Next(1, objVar, @pFetched) <> S_OK) or (pFetched = 0) then
         Exit;
      if VarIsEmpty(objVar.MACAddress) then
         Exit;
      szMacAddr := objVar.MACAddress;

      szWQL     := 'Select * From Win32_NetworkAdapterConfiguration'+
                    ' Where MACAddress = ''' + szMacAddr + '''';
      SWbemQuery := SWbemCon.ExecQuery(szWQL);
      unknown   := SWbemQuery._NewEnum;
      unknown.QueryInterface(IEnumVariant, enumUnk);
      if (enumUnk.Next(1, objVar, @pFetched) <> S_OK) or (pFetched = 0) then
         Exit;

      Result := (objVar.EnableStatic(varIPAddress, varSubnetMask) = S_OK) and
                (objVar.SetGateways(varGateway, varGatewayMetric) = S_OK);
   finally
      VarClear(SWbem);
      VarClear(SWbemCon);
      CoUnInitialize;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if ChangeIPAddress('Drahtlose Netzwerkverbindung', '192.168.0.8', '255.255.255.0', '192.168.0.1') then
      ShowMessage('Geändert')
   else
      ShowMessage('Nicht Geändert')  
end;

{..}
Mit diesem Code hier und diesem MSDN-LINK solltest du dir eine Funktion für dynamische Adressen
selber erstellen können.

capo 18. Okt 2006 00:52

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Hi x000x
wenn ich deinen Code teste meldet mein Antivirenprogramm einen Trojaner, ist das normal?
Kann man das umgehen? Sonst wären Programme die das WMI benutzen doch sinnlos.

Grüsse Capo

hoika 18. Okt 2006 07:23

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Hallo,

das meldete der wahrscheinlich wegen der Verwendung der EnableDHCP.
Das ist ja auch nicht der Hauptzweck von WMI.


Heiko

Mackhack 18. Okt 2006 21:56

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Hi,

ich habe grad auch mal deinen Code angetestet und er aendert auch die IP aber wenn es erfolgreich geaendert wurde kommt als ShowMessage dass es eben nicht erfolgreich war. Woran liegt das?

Der_Unwissende 19. Okt 2006 07:51

Re: IP Äandern von Fest zu DHCP und umgekehrt
 
Zitat:

Zitat von Mackhack
Woran liegt das?

Hi,
schau doch einfach mal bei dem Result, was da zurückgegeben wird. Also Breakpoint bei
Delphi-Quellcode:
(objVar.EnableStatic(varIPAddress, varSubnetMask) = S_OK) and
(objVar.SetGateways(varGateway, varGatewayMetric) = S_OK)
Und dann schauen, ob er überhaupt bis in die Zeile kommt und wenn ja, welchen Wert objVar.EnableStatic bzw. setGateways hat. Wenn der vorher rausspringt, dann geh einfach mal die Methode im Debugger durch, dann solltest du schnell die verantwortliche Stelle finden.

Gruß Der Unwissende


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz