16,748
社区成员
发帖
与我相关
我的任务
分享
{*-------------------------------------------------------------------------------
获取本地IP
@param 无
@return string类型IP地址
-------------------------------------------------------------------------------*}
function GetLocalIP(): string;
type
TInAddrList = array[0..10] of PInAddr;
PInAddrList = ^TInAddrList;
var
phe: PHostEnt;
pPtr: PInAddrList;
Buffer: array[0..63] of char;
i: Integer;
wsa: TWSAData;
begin
try
Result := '';
if WSAStartup(MakeWord(2, 2), wsa) <> 0 then Exit;
gethostname(Buffer, SizeOf(Buffer));
phe := gethostbyname(Buffer);
if phe = nil then Exit;
pPtr := PInAddrList(phe^.h_addr_list);
i := 0;
while pPtr^[i] <> nil do
begin
Result := StrPas(inet_ntoa(pPtr^[i]^));
Inc(i);
end;
WSACleanup();
except
Result := '127.0.0.1';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.DoubleBuffered:=True;
end;