AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi fest eingestellte IP-Adressen mittels Programm ändern
Thema durchsuchen
Ansicht
Themen-Optionen

fest eingestellte IP-Adressen mittels Programm ändern

Ein Thema von Kara · begonnen am 17. Aug 2005 · letzter Beitrag vom 17. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#1

fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 08:08
Ich hab mal wieder ein IP-Problem.
Ist es möglich, eine fest eingestellte IP-Adresse mittels Delphi-Programm zu ändern?
Ich hab hier ein Programm, das das eigentlich tun sollte, es funktioniert aber nicht.
Ich kann verschiedene IPs eingeben, das System startet neu, aber es ändert sich nichts.
(Habe die automatische Zuweisung durch den DHCP ausgeschalten)

Das Programm ist nicht von mir, darum kann ich nur mutmaßen, was für den Eintrag gedacht ist.
Vielleicht dies hier:
Delphi-Quellcode:
begin
           MAC_CRS:=CMac + IdentPunkt;
           TSAP_SPS:=IdentPunkt + '_CRS';
           TSAP_CRS:='CRS_' + IdentPunkt;
           Ini.WriteString('IP', 'IP_SPS',IP_SPS);
           Ini.WriteString('IP', 'IP_CRS',IP_CRS);
           Ini.WriteString('IP', 'Subnet',Subnet_CRS);
           Ini.WriteString('IP', 'Gateway',Gateway_CRS);
           Ini.WriteString('Identpunkt', 'Identpunkt',IdentPunkt);
           Ini.WriteString('Ethernet', 'MAC_SPS',MAC_SPS);
           Ini.WriteString('Ethernet', 'MAC_CRS',MAC_CRS);
           Ini.WriteString('Ethernet', 'TSAP_SPS',TSAP_SPS);
           Ini.WriteString('Ethernet', 'TSAP_CRS',TSAP_CRS);
           Ini.WriteString('Kamera', 'Trigger',Trigger);
           if IP_CRS <> 'then
           begin
              registryEintrag;
              reeboot;
              halt;
           end;
         end
         else
         begin
           IP_SPS:=Ini.ReadString('IP', 'IP_SPS',IP_SPS);
           IP_CRS:=Ini.ReadString('IP', 'IP_CRS',IP_CRS);
           Subnet_CRS:=Ini.ReadString('IP', 'Subnet',Subnet_CRS);
           Gateway_CRS:=Ini.ReadString('IP', 'Gateway',Gateway_CRS);
           MAC_SPS:=Ini.ReadString('Ethernet', 'MAC_SPS',MAC_SPS);
           MAC_CRS:=Ini.ReadString('Ethernet', 'MAC_CRS',MAC_CRS);
           TSAP_SPS:=Ini.ReadString('Ethernet', 'TSAP_SPS',TSAP_SPS);
           TSAP_CRS:=Ini.ReadString('Ethernet', 'TSAP_CRS',TSAP_CRS);
           Trigger:=Ini.ReadString('Kamera', 'Trigger',Trigger);
           NurTNR:=Ini.ReadString('Modus', 'NurTNR',NurTNR);
         end;
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 08:43
Hallo Kara,

Zitat von Kara:
Ist es möglich, eine fest eingestellte IP-Adresse mittels Delphi-Programm zu ändern?
Das kommt darauf an, wie fest sie eingestellt ist. Wenn sie hardwaremäßig (in einem ROM oder EPROM) festgelegt ist, dann eher nicht...

Zitat von Kara:
Ich hab hier ein Programm, das das eigentlich tun sollte, es funktioniert aber nicht.
Ich kann mich täuschen, aber der von dir gezeigte Programmausschnitt scheint mir nichts mit dem Windows TCP/IP Stack zu machen.

Wenn du die IP-Adresse eines Windows PC per Programm ändern möchtest, dann ist vielleicht dieser thread für dich von Interesse: klick

Andernfalls solltest du mehr Informationen geben.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#3

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:11
Ah, ja, das hilft mir weiter. Danke!

Das wird aber ein ganzes Stück Arbeit, das unter zu bringen.

Ich habe festgestellt, dass mein Vorgänger die IP-Adresse in die Registry schreibt. Dort ändern sich die IPs auch. Hilft das denn was?
"set address..." oder netsh hab ich nirgends gefunden.

Mit fehlt etwas das Verständnis dafür, dass er das gemacht hat.
Das Programm war ursprünglich für Win NT gedacht und wird jetzt unter XP genutzt. Aber das sollte eigentlicht nicht ausschlaggebend sein, oder?

Delphi-Quellcode:
procedure TFormMain.registryEintrag;
var
  regist:TRegistry;
  Schluessel:String;
  Schluessel1:String;
  Schluessel2:String;
  i:integer;
  ip:string;
  x:integer;
  card:string;
begin
  if IP_CRS <>'then
  begin
     regist:=TRegistry.Create;
    try
       card:=wertAusRegistryHolen('ServiceName','SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\NetworkCards\1');
       regist.rootkey:=HKEY_LOCAL_MACHINE;
       Schluessel1:='SYSTEM\CurrentControlSet\Services';
       Schluessel2:='\Parameters\Tcpip';
       Schluessel:=Schluessel1 + '\' + card + Schluessel2;
       if not regist.KeyExists(Schluessel) then
       begin
         Schluessel:=Schluessel1 + '\N1001' + Schluessel2;
         if not regist.KeyExists(Schluessel) then
         begin
           Schluessel:=Schluessel1 + '\E100B' + Schluessel2;
           if not regist.KeyExists(Schluessel) then
           begin
              Schluessel:=Schluessel1 + '\E100B1' + Schluessel2;
              if not regist.KeyExists(Schluessel) then
              begin
                 Schluessel:=Schluessel1 + '\Elnk31' + Schluessel2;
                 if not regist.KeyExists(Schluessel) then
                 begin
                    Schluessel:=Schluessel1 + '\Elnk32' + Schluessel2;
                    if not regist.KeyExists(Schluessel) then
                    begin
                       Showmessage('Achtung Fehlender Schlüssel in Registry!');
                       exit;
                    end;
                 end;
              end;
           end;
         end;
       end;
       wertInRegistryEintragen(IP_CRS,Schluessel,'IPAddress',REG_MULTI_SZ);
       wertInRegistryEintragen('255.255.255.' + Subnet_CRS,Schluessel,'SubnetMask',REG_MULTI_SZ);
       ip:='';
       x:=0;
       for i := 1 to length(IP_CRS) do
       begin
         if copy(IP_CRS,i,1)[1]='.then
           inc(x);
         if x < 3 then
           ip:=ip+copy(IP_CRS,i,1)[1];
       end;
       ip:=ip + '.' + Gateway_CRS;
       wertInRegistryEintragen(ip,Schluessel,'DefaultGateway',REG_MULTI_SZ);
    finally
       regist.free;
    end;
  end;
end;
Vielleicht hilft das eher? Ich blick nicht durch, was da eigentlich abläuft
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:14
Ja, daran hab ich auch schon gedacht, aber dann musst du IMHO wohl oder übel einen Neustart machen.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#5

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:22
Das tu ich
Die Werte werden in der Registry auch übernommen. Aber auf die Netzwerkeinstellungen hat das keinerlei Einfluss.
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:43
Hallo Kara,

auf welchen Windows-Versionen soll denn das Programm laufen?
Arbeitest du wirklich mit Delphi 2?
Kannst du NETSH in einem Konsolfenster starten?

marabu
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:47
Zitat von Kara:
Die Werte werden in der Registry auch übernommen. Aber auf die Netzwerkeinstellungen hat das keinerlei Einfluss.
LOL...

Und dass du die Falsche Karte erwischt hast? Also der Letzte Schlüssel lautet ja 1. Vielleicht gibz die Karte net.. :S

Hab hier noch was gefunden bei mir in der Registry (XP):
Code:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#8

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:51
Marabu: Wie gesagt, das Programm wurde für NT geschrieben und soll jetzt unter XP laufen.
Ich arbeite tatsächlich unter Delphi 2. Meine Arbeitsstelle ist da nicht so...

Wurde eventuell unter NT die Eintragung aus der Registry in die Netzwerkeinstellungen übernommen und unter XP nicht mehr?

Faux: Da werd ich glatt mal nachschauen
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 11:31
Hallo Kara,

ich habe leider keinen Zugriff auf D2 und kann mich auch nicht so gut daran erinnern, aber das angehängte Programm habe ich in D7 erstellt und es stellt die IP Adresse ohne API Aufrufe mit Hilfe von NETSH ein.

Vielleicht kannst du ja etwas davon verwenden, um den Direktzugriff auf die registry aus deinem Programm zu verbannen.

marabu
Angehängte Dateien
Dateityp: dpr demo_546.dpr (1,3 KB, 34x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#10

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 11:41
Ist es denn schlecht, dass das Prog in die Registry eingreift?
Ich hätte das einfach gelassen und zusätzlich die Änderung der Netzwerkeinstellung mit dazu.
(Schön muss es nicht sein)
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz