type
TaPInAddr = array[0..255] of PInAddr; //Use Winsock.pas
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array[0..63] of char;
i: integer;
GInitData: TWSADATA;
begin
ipinfo.Clear ;
ipinfo.Text := frm_Tray.IpAddress ;
wsastartup($101, GInitData);
result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if not assigned(phe) then
exit;
pptr := PaPInAddr(Phe^.h_addr_list);
i := 0;
while pptr^[I] <> nil do
begin
ipinfo.Items.Add(StrPas(inet_ntoa(pptr^[I]^)) );
inc(i);
end;
Delete(Result, Length(Result), 1);
wsacleanup;
end;