function localIP: string;
type TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101,ginitdata);
result := '';
gethostname(buffer,sizeof(buffer));
phe := gethostbyname(buffer);
if phe =nil then exit;
pptr := papinaddr(phe^.h_addr_list);
I := 0;
while pptr^[i] <> nil do
begin
result := SysUtils.StrPas(inet_ntoa(pptr^[i]^));
inc(I);
end;
WSACleanup;
end ;