Delphi-PRAXiS

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)

BornToBeBreit 31. Jan 2005 20:42


eigene ip adresse ändern
 
Also hallo erst mal

ich wollt mal gerne wissen wie ich die lokal netz ip mit hilfe eines delphiprogramms ändern kann

fänds echt cool wenn ihr mir helfen könntet

Amd 2. Feb 2005 18:36

Re: eigene ip adresse ändern
 
Hi...
ruf mal folgendes über shellexecute auf
netsh interface ip set address "LAN-Verbindung" static 192.168.0.10 255.0.0.0 192.168.0.2 2

Sharky 2. Feb 2005 19:38

Re: eigene ip adresse ändern
 
Zitat:

Zitat von Amd
... 192.168.0.10 255.0.0.0 192.168.0.2 2

Aber möglicst nicht mit der IP-Adresse bei gleichzeitiger Verwendung dieser Subnetzmaske. :stupid:

Amd 2. Feb 2005 21:08

Re: eigene ip adresse ändern
 
:-D Stimmt :-D

BornToBeBreit 4. Feb 2005 16:38

Re: eigene ip adresse ändern
 
hä dess raff ich net ganz wohin schreib ich dess in delphi?

Duffy 4. Feb 2005 17:00

Re: eigene ip adresse ändern
 
Hallo BornToBeBreit,
Zitat:

Zitat von BornToBeBreit
hä dess raff ich net ganz wohin schreib ich dess in delphi?

ein Commandline Befehl der mit "ShellExecute" ausgeführt wird

bye
Claus

Rastaman 4. Feb 2005 17:14

Re: eigene ip adresse ändern
 
Warum labert ihr drumzu und schreibt nicht einfach den ganzen befehl :gruebel:

czapie 4. Feb 2005 17:41

Re: eigene ip adresse ändern
 
ruhig brauner!

Aber überleg dir wo dud ein Programm benutzten willst, es muss nicht immer so sein, das deine Netzverbindung weiterhin besteht, wenn du deine ip änderst.
Zum Beispiel in lokalen Netzen wo statische ip adressen verteilt sind.

BornToBeBreit 5. Feb 2005 21:24

Re: eigene ip adresse ändern
 
Also ich habs jetz einfach so gemacht, dass ich dess in net .bat datei einfüg und dess dann ausführe

jetz kann ich ganz einfach und schnell meine ip ändern

danke euch allen für eure hilfe

alcaeus 5. Feb 2005 22:28

Re: eigene ip adresse ändern
 
Hallo BornToBeBreit,

wenn du [dp]"ShellExecute"[/dp] verwendest, musst du nicht den Umweg um die .bat-Datei gehn. AFAIR kann man DOS-Befehle einfach bei ShellExecute uebergeben, und diese werden dann ausgefuehrt.

Greetz
alcaeus

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

MisterNiceGuy 26. Jun 2007 11:53

Re: eigene ip adresse ändern
 
Ein Problem besteht noch:
Was ist, wenn das Häkchen bei "IP Adresse automatisch beziehen" gesetzt ist? Dann ändert er die Adresse nicht!
Weiß einer wie man das umgeht?

MfG Jonas


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.

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