function LocalIP: string; type TaPInAddr = array [0 .. 10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr; Buffer: array [0 .. 63] of Ansichar; 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 := StrPas(inet_ntoa(pptr^[i]^)); Inc(i); end; WSACleanup; end; |
|