Hallo Leutz,
ich möchte über folgende Funktion alle lokalen
IP's ermitteln:
Delphi-Quellcode:
uses
WinSock;
function GetLocalIPs: string;
type
PPInAddr = ^PInAddr;
var
wsadata : TWSAData;
hostinfo : PHostEnt;
addr : PPInAddr;
begin
Result := '';
if(WSAStartUp(MAKEWORD(1,1),wsadata) = 0) then
try
hostinfo := gethostbyname(nil);
if(hostinfo <> nil) then begin
addr := pointer(hostinfo^.h_addr_list);
while(addr^ <> nil) do begin
Result := Result + inet_ntoa(addr^^) + ^M^J;
inc(addr);
end;
end;
finally
WSACleanUp;
end;
end;
Ich rufe die Funktion im OnCreate Ereigniss auf und weise das Ergebniss einem Panel zu.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Caption := GetLocalIPs;
end;
Allerdings wird nur eine
IP Adresse im Panel eingetragen obwohl 2 NIC's vorhanden sind die auch beide eine
IP haben (ipconfig /all zeigt diese auch an - siehe Anhang).
Wo ist mein Denkfehler ?