![]() |
Ip Auslesen oder ganze Ipconfig
Hi, kann mir wer sagen, wie ich meine Ip-Adresse mit delphi auslesen kann?
oder den Rechnernamen, oder am besten die gesamte: [ipconfig /all] bin dankbar für jede hilfe... gruß pump3r :wink: |
Re: Ip Auslesen oder ganze Ipconfig
so kommst du an die ip adresse
Delphi-Quellcode:
uses winsock;//wichtig
function HoleIpAddresse: string; var phoste: PHostEnt; Buffer: array [0..100] of char; WSAData: TWSADATA; begin result := ''; if WSAStartup($0101, WSAData) <> 0 then exit; GetHostName(Buffer,Sizeof(Buffer)); phoste:=GetHostByName(buffer); if phoste = nil then result := '127.0.0.1' else result := StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^)); WSACleanup; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(HoleIpAddresse); end; |
Re: Ip Auslesen oder ganze Ipconfig
danke!
den rechnernamen könnte ich aus der registry asulesen, nur ist der an einer stelle, wo ich nicht weiß ob das bei allen betreibsystemn gleich ist. |
Re: Ip Auslesen oder ganze Ipconfig
schau dir mal den code an
Delphi-Quellcode:
in diesem code ist auch die lösung für den computernamen
GetHostName(Buffer,Sizeof(Buffer));
phoste:=GetHostByName(buffer); |
Re: Ip Auslesen oder ganze Ipconfig
aha!
hehe, ok das bekomm ich hin. danke |
AW: Re: Ip Auslesen oder ganze Ipconfig
Zitat:
Es geht auch einfacher: 1.) Komponent TCPServer auf die Form ziehen. 2.) Im Quellcode entsprechend schreiben was man braucht, z.B. TCPServer1.LocalHostAddr (In deinem Falle). |
AW: Ip Auslesen oder ganze Ipconfig
Es scheint einfacher zu sein, ist aber eher unsauber. Du holst dir ziemlich viel Overhead in dein Programm, nur um die IP-Adresse auszulesen?
|
AW: Ip Auslesen oder ganze Ipconfig
Zitat:
Dann gibt es die Methode sich einfach aus der Unit die Function zu ziehen bzw "abzuschreiben", so dass diese auch außerhalb der Unit funktioniert (In diesem Falle die Sockets Unit) oder man schreibt es gleich selbst. Durch die Unit hätte man aber gleich seinen "Anhaltspunkt, wie was funktioniert". Als Beispiel für diesen Fall:
Delphi-Quellcode:
function TIpSocket.LocalHostAddr: TSocketHost;
begin Result := LookupHostAddr(LocalHostName); end; Wobei wir dann zu folgendem kommen
Delphi-Quellcode:
Ich finde es ist eine wunderbare Methode um sich Funktionen zu stibitzen ohne viel Aufwand :lol:
function TIpSocket.LookupHostAddr(const hn: string): TSocketHost;
var h: PHostEnt; begin Result := ''; if hn <> '' then begin if hn[1] in ['0'..'9'] then begin if inet_addr(pchar(hn)) <> INADDR_NONE then Result := hn; end else begin h := gethostbyname(pchar(hn)); if h <> nil then with h^ do Result := format('%d.%d.%d.%d', [ord(h_addr^[0]), ord(h_addr^[1]), ord(h_addr^[2]), ord(h_addr^[3])]); end; end else Result := '0.0.0.0'; end; (Selbst wenn man nicht die ganze Unit einbinden will aus deinen o.g. Gründen) Hat mir im "täglichem Betrieb" oft geholfen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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