Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi eigene ip adresse ändern (https://www.delphipraxis.net/39311-eigene-ip-adresse-aendern.html)

MagicAndre1981 5. Feb 2005 22:35

Re: eigene ip adresse ändern
 
Hi,

Sakura hat hier ein Paar API Befehle zum Thema IP Adresse ändern aufgelistet.

Mfg
André

GeorgPeifer 13. Okt 2005 11:06

Re: eigene ip adresse ändern
 
Erst Betriebssystem rausfinden (Zur Sicherheit), dann mit WinExec netsh aufrufen - habs nur mit XP getestet...

Delphi-Quellcode:
const
  { operating system (OS)constants }
  cOsUnknown = -1;
  cOsWin95    = 0;
  cOsWin98    = 1;
  cOsWin98SE = 2;
  cOsWinME   = 3;
  cOsWinNT   = 4;
  cOsWin2000  = 5;
  cOsXP      = 6;

function GetOperatingSystem: Integer;
var
  osVerInfo: TOSVersionInfo;
  majorVer, minorVer: Integer;
begin
  Result := cOsUnknown;
  { set operating system type flag }
  osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  if GetVersionEx(osVerInfo) then
  begin
    majorVer := osVerInfo.dwMajorVersion;
    minorVer := osVerInfo.dwMinorVersion;
    case osVerInfo.dwPlatformId of
      VER_PLATFORM_WIN32_NT: { Windows NT/2000 }
        begin
          if majorVer <= 4 then
            Result := cOsWinNT
          else if (majorVer = 5) and (minorVer = 0) then
            Result := cOsWin2000
          else if (majorVer = 5) and (minorVer = 1) then
            Result := cOsXP
          else
            Result := cOsUnknown;
        end;
      VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME }
        begin
          if (majorVer = 4) and (minorVer = 0) then
            Result := cOsWin95
          else if (majorVer = 4) and (minorVer = 10) then
          begin
            if osVerInfo.szCSDVersion[1] = 'A' then
              Result := cOsWin98SE
            else
              Result := cOsWin98;
          end
          else if (majorVer = 4) and (minorVer = 90) then
            Result := cOsWinME
          else
            Result := cOsUnknown;
        end;
      else
        Result := cOsUnknown;
    end;
  end
  else
    Result := cOsUnknown;
end;

function WindowsDirectory:string;
var WinDir : PChar;
begin
  WinDir:=StrAlloc(Max_Path);
  try
    GetWindowsDirectory(WinDir,Max_Path);
    Result:=(String(WinDir))+'\';
  finally
    StrDispose(WinDir);
  end;
end; {WindowsDirectory}


procedure TForm1.IPLabelClick(Sender: TObject);
var windir:string;
    os:integer;
begin
  os:=GetOperatingSystem;
  If os=cOsWin95   then exit;
  If os=cOsWin98   then exit;
  If os=cOsWin98SE then exit;
  If os=cOsWinME  then exit;
  If os=cOsWinNT  then windir:=WindowsDirectory+'system32\';
  If os=cOsWin2000 then windir:=WindowsDirectory+'system32\';
  If os=cOsXP     then windir:=WindowsDirectory+'system32\';
  WinExec(PChar(windir+'netsh interface ip set address name = "LAN-Verbindung" source = static addr = 192.168.1.28 mask = 255.255.255.0'),SW_SHOWNORMAL);
end;

mh166 13. Okt 2005 16:17

Re: eigene ip adresse ändern
 
:pale: ARGH! :wall: Wie lange soll das denn noch dauern? Es sollte doch inzwischen nun auch mal zu den letzten durchgekommen sein, dass WinExec nur noch zur Abwärtskompatibilität zu 16bit-Programmen da is!!!

Zitat:

Zitat von Der PSDK
Note This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

Nehmt MSDN-Library durchsuchenShellExecute oder MSDN-Library durchsuchenCreateProcessdafür. Mensch.... :evil:

mfg, mh166

GeorgPeifer 13. Okt 2005 17:29

Re: eigene ip adresse ändern
 
dann schreib das doch bitte mal um, statt zu meckern :roll:

Van HelF 19. Feb 2006 12:07

Re: eigene ip adresse ändern
 
hallo leute, kann mir jemand sagen, wie ich mit der netsh funktion einen DNS Server setzen kann ?!

mein code, funktioniert nur leider nicht
(shellexecute)
netsh set dns "LAN-Verbindung" static 192.168.0.10

Van HelF 19. Feb 2006 16:13

Re: eigene ip adresse ändern
 
ok habe das problem mit
Delphi-Quellcode:
    ShellExecute(0,Nil,PChar('netsh'),
                     Pchar(' interface ip set dns "'+net.name+'" '+net.DNSmode+' '+net.PDNS+' primary'),
                     Pchar('C:\StartDir'),SW_HIDE);
lösen können. nur kann ich damit nur den ersten DNS Server setzen, wie kann ich die einstellungen für den 2. vornehmen ?!
(secondary geht nicht)

Christian Seehase 19. Feb 2006 16:59

Re: eigene ip adresse ändern
 
Moin Van HelF,

das müsste eigentlich mit "add dns" statt "set dns" gehen.
Zumindest die Hilfe von XP ist da auskunftsfreudig.

danku 28. Aug 2006 23:54

Re: eigene ip adresse ändern
 
Zitat:

Zitat von GeorgPeifer
Erst Betriebssystem rausfinden (Zur Sicherheit), dann mit WinExec netsh aufrufen - habs nur mit XP getestet...

Delphi-Quellcode:
const
  { operating system (OS)constants }
  cOsUnknown = -1;
  cOsWin95    = 0;
  cOsWin98    = 1;
  cOsWin98SE = 2;
  cOsWinME   = 3;
  cOsWinNT   = 4;
  cOsWin2000  = 5;
  cOsXP      = 6;

...


procedure TForm1.IPLabelClick(Sender: TObject);
var windir:string;
    os:integer;
begin
  os:=GetOperatingSystem;
  If os=cOsWin95   then exit;
  If os=cOsWin98   then exit;
  If os=cOsWin98SE then exit;
  If os=cOsWinME  then exit;
  If os=cOsWinNT  then windir:=WindowsDirectory+'system32\';
  If os=cOsWin2000 then windir:=WindowsDirectory+'system32\';
  If os=cOsXP     then windir:=WindowsDirectory+'system32\';
  WinExec(PChar(windir+'netsh interface ip set address name = "LAN-Verbindung" source = static addr = 192.168.1.28 mask = 255.255.255.0'),SW_SHOWNORMAL);
end;

wie kann ich erreichen das die statische adresse in der WINEXEC-Anweisung die Variable inputstring übernimmt?

Delphi-Quellcode:
  InputString:= InputBox('Neue IP-Adresse', '', edlocalip.text);
  edlocalip.Text := inputstring;

  WinExec(PChar(windir+'netsh interface ip set address name = "LAN-Verbindung" source = static addr = 192.168.1.28 mask = 255.255.255.0'),SW_SHOWNORMAL);

danku 1. Sep 2006 09:10

Re: eigene ip adresse ändern
 
hat keiner eine lösung?

Klaus01 1. Sep 2006 09:20

Re: eigene ip adresse ändern
 
Sollte doch so gehen, oder nicht?

Delphi-Quellcode:
InputString:= InputBox('Neue IP-Adresse', '', edlocalip.text);
  edlocalip.Text := inputstring;

  WinExec(PChar(windir+'netsh interface ip set address name = "LAN-Verbindung" source = static addr = '+inputstring+ ' mask = 255.255.255.0'),SW_SHOWNORMAL);
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.
Seite 2 von 3     12 3      

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 by Thomas Breitkreuz