uses Winsock; function GetLocalPs: TStringList; type TaPInAddr = array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr; Buffer: array[0..63] of Char; I: Integer; GInitData: TWSAData; IPs: TStringList; begin IPs := TStringList.Create; WSAStartup($101, GInitData); GetHostName(Buffer, SizeOf(Buffer)); phe := GetHostByName(buffer); if phe = nil then IPs.Add('No IP found') else begin pPtr := PaPInAddr(phe^.h_addr_list); I := 0; while pPtr^[I] <> nil do begin IPs.Add(inet_ntoa(pptr^[I]^)); Inc(I); end; end; WSACleanup; Result := IPs; end;
Hiç yorum yok:
Yorum Gönder