Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   IP in registry (https://www.delphipraxis.net/130794-ip-registry.html)

julchen 13. Mär 2009 09:41


IP in registry
 
Hallo,
weiss jemand, wo in der Registry unter XP die IP gespeichert ist?
Viele Grüsse

sirius 13. Mär 2009 09:43

Re: IP in registry
 
Welche "die IP"? Also ich habe auf diesem rechner neben localhost, glaube, 4 weitere.
Und warum sollte diese in der Registry stehen?

Luckie 13. Mär 2009 09:44

Re: IP in registry
 
Finde deine IP raus und such nach ihr.

nuclearping 13. Mär 2009 09:52

Re: IP in registry
 
Zitat:

Zitat von sirius
Und warum sollte diese in der Registry stehen?

Windows speichert die IPs der Netzwerkadapter in der Registry.

Aber wie du schon gesagt hast: Da gibts mehr wie nur eine. :mrgreen:

sirius 13. Mär 2009 09:53

Re: IP in registry
 
Zitat:

Zitat von nuclearping
Zitat:

Zitat von sirius
Und warum sollte diese in der Registry stehen?

Windows speichert die IPs der Netzwerkadapter in der Registry.

Ok, wenn ich eine vorgebe. Aber was ist, wenn ich sie mir von DHCP liefern lasse?

verwirrt 13. Mär 2009 11:33

Re: IP in registry
 
Ich hab zwar Vista, aber hier finde ich meine per dhcp zugewiesene IP-Adresse:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Parameters\Interfaces\...

Wert: DhcpIPAddress

Vielleicht ist das bei Windows XP auch so.

Sunlight7 13. Mär 2009 11:54

Re: IP in registry
 
Zitat:

Zitat von verwirrt
Vielleicht ist das bei Windows XP auch so.

Japp

rollstuhlfahrer 13. Mär 2009 13:59

Re: IP in registry
 
warum überhaupt in der Registry suchen? Du kannst diese doch prima auslesen, siehe hier. Das geht auch als noch so eingeschränkter User.

Bernhard

toyoman 7. Apr 2009 07:41

Re: IP in registry
 
Mit dieser Funktion kann die IP eines Adapters ausgelesen werden:

Delphi-Quellcode:
// IP Addressen auslesen
function getCurrentIPAddresses(Adapter:String):TStrings;
var
  Reg: TRegistry;
begin
    reg := TRegistry.Create;
    reg.Access :=KEY_READ;
    reg.rootkey:=HKEY_LOCAL_MACHINE;
    if reg.ValueExists('IPAddress') then
    begin
        ReadREG_MULTI_SZ(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\'+Adapter, 'IPAddress', result);
    end;
    reg.closekey;
    reg.free;
end;
Um den aktiven Netzwerkadapter zu bestimmen verwende ich jeweils diese Funktion:

Delphi-Quellcode:
// Ersten und aktiven Netzwerkadapter auslesen (Registry Adapter1)
function getFirstAdapter():String;
var
  Reg: TRegistry;
begin
    reg := TRegistry.Create;
    reg.Access :=KEY_READ;
    reg.rootkey:=HKEY_LOCAL_MACHINE;
    reg.OpenKey('SYSTEM\Setup\AnswerFileMap', false);
    if reg.ValueExists('Adapter1') then
    begin
         result:=reg.ReadString('Adapter1');
    end else
    begin
         result:='unknown';
    end;
end;

Christian Seehase 7. Apr 2009 10:32

Re: IP in registry
 
Moin Toyoman,

da solltest Du Dir mal lieber die IP-Helper-Funktionen anschauen, z.B., MSDN-Library durchsuchenGetAdaptersInfo und MSDN-Library durchsuchenGetPerAdapterInfo (bzw. Hier im Forum suchenGetAdaptersInfo, Hier im Forum suchenGetPerAdapterInfo).

Deine erste Funktion tut es, z.B., nicht, wenn das Adapter seine IP-Adresse per DHCP bekommen hat.
(Ich vermute mal, dass die hier gepostete Variante nicht genau die ist, die Du verwendest, denn so wie sie hier steht, wird sie bei jedem Aufruf eine AV produzieren. ;-). Ein Objekt als Rückgabewert ist auch nicht zu empfehlen, da man zu leicht die Übersicht verlieren kann, wann man dass wieder freigeben muss. Besser als Parameter übergeben.)


Was die zweite Funktion angeht:
Wenn der Rechner nicht unattended installiert wurde, existiert der Key AnswerFileMap, i.d.R., schon mal garnicht. ;-)

Seit Windows 2000 hat sich die Speicherung dieser Daten derart verkompliziert, dass man ohne die Systemfunktionen nur mit ziemlichen Schwierigkeiten an die gewünschten Daten kommen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 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