Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigene IP-Adresse Ermitteln (https://www.delphipraxis.net/77954-eigene-ip-adresse-ermitteln.html)

killerkarl 27. Sep 2006 08:57


Eigene IP-Adresse Ermitteln
 
Moin wie kann man seine eigene IP Adresse ermitteln?

Andidreas 27. Sep 2006 09:04

Re: Eigene IP-Adresse Ermitteln
 
probiers mal mit

TIdIpWatch is ne komponente die du unter indy misc findest


oder du nimmst von denn jedis sofern vorhande TJvComputerInfoEx

killerkarl 27. Sep 2006 09:09

Re: Eigene IP-Adresse Ermitteln
 
Ich habe beides irgendwie nicht

uwewo 27. Sep 2006 09:09

Re: Eigene IP-Adresse Ermitteln
 
Hier ein Auszug von http://dsdt.info

Folgende Funktion gibt die lokalen IP-Adressen zurück. Sie erwartet als Parameter eine abgeleitete Klasse von TStrings, wie beispielsweise TMemo.Lines oder TListbox.Items oder auch eine TStringList.

Sie gibt True zurück, wenn mindestens eine IP-Adresse ermittelt werden konnte. Sollte der Computer hinter einem Router liegen, wird die echte Internet-Adresse nicht berücksichtigt.

Die Unit WinSock muss eingebunden werden.

Delphi-Quellcode:
function GetLocalIPs(const Lines:TStrings):Boolean;
type
  PPInAddr= ^PInAddr;
var
  wsaData: TWSAData;
  HostInfo: PHostEnt;
  HostName: Array[0..255] of Char;
  Addr: PPInAddr;
begin
  Result:=False;
  Lines.Clear;
  if WSAStartup($0102, wsaData)=0 then
  try
    if gethostname(HostName, SizeOf(HostName)) = 0 then Begin
       HostInfo:= gethostbyname(HostName);
       if HostInfo<>nil then Begin
          Addr:=Pointer(HostInfo^.h_addr_list);
          if (Addr<>nil) AND (Addr^<>nil) then
             Repeat
                    Lines.Add(StrPas(inet_ntoa(Addr^^)));
                    inc(Addr);
             Until Addr^=nil;
       end;
    end;
    Result:=True;
  finally
    WSACleanup;
  end;
end;
Aufgerufen werden kann die Funktion z.B. so:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not GetLocalIPs(Memo1.Lines) then
     MessageDLG('Keine IP-Adresse',mtInformation,[mbOK],0);
end;

killerkarl 27. Sep 2006 09:11

Re: Eigene IP-Adresse Ermitteln
 
Das habe ich auch schon gefunden, denke dann muss ich darauf wohl zurückgreifen, hatte auf einen einzeiler gehofft :)

Luckie 27. Sep 2006 09:16

Re: Eigene IP-Adresse Ermitteln
 
Ist doch ein Einzeiler: GetLocalIPs(Memo1.Lines)

Nur mal nebenbei: Könnte man jede Funktion auf eine Zeile reduzieren, bestünde jedes noch so komplexe Programm aus nur einer Zeile. Oder anders: Wenn es für alles schon was fertiges im Betriebssystem gäbe, bräuchte man keine Programme mehr und das Betriebsdsystem wäre so komplex, dass es nicht mehr zu warten wäre.

killerkarl 27. Sep 2006 09:19

Re: Eigene IP-Adresse Ermitteln
 
wo steht die IP adresse dann?

mkinzler 27. Sep 2006 09:21

Re: Eigene IP-Adresse Ermitteln
 
Zitat:

Zitat von killerkarl
wo steht die IP adresse dann?

Die Adresse(n) stehen im Memo.

SirThornberry 27. Sep 2006 09:25

Re: Eigene IP-Adresse Ermitteln
 
Zitat:

Zitat von killerkarl
wo steht die IP adresse dann?

Ich hoffe doch die Frage war nicht ernst gemeint. Wenn fertige Quellcodes verwendet sollte man diese doch verstehen und nicht einfach nur abtippen und aufrufen. Ich würde mich zumindest nicht wohl fühlen wenn ich Quellcodes in mein Programm packe ohne zu wissen was diese noch so anstellen neben dem was sie versprechen.

killerkarl 27. Sep 2006 09:27

Re: Eigene IP-Adresse Ermitteln
 
Ne, is ok ich habs jetzt gechckt, meine Fähigkeiten sind eher minderprächtig, deswegen hats ne weile gedauert


/edit funzt jetzt auch

danke für die schnelle Hilfe


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