function GetLocalIP: string; type TaPInAddr = array[0..255] 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 not assigned(phe) then exit; pptr := PaPInAddr(Phe^.h_addr_list); i := 0; while pptr^[I] <> nil do begin result := {Result +}StrPas(inet_ntoa(pptr^[I]^)) + ','; inc(i); end; Delete(Result, Length(Result), 1); wsacleanup; end;