Delphi获取本地IP地址

uses WinSock;

function GetLocalIP(var LocalIp: string): Boolean;
var 
  HostEnt: PHostEnt;
  IP: String;
  Addr: PChar;
  Buffer: array [0..63] of Char;
  WSData: TWSADATA;
begin
  Result := False;
  try
    WSAStartUp(2, WSData);
    GetHostName(Buffer, SizeOf(Buffer));
    HostEnt := GetHostByName(Buffer);
    if HostEnt = nil then exit;
    Addr := HostEnt^.h_addr_list^;
    IP := Format( '%d.%d.%d.%d', [ Byte(Addr[0]), Byte(Addr[1]),
    Byte(Addr[2]), Byte(addr[3]) ]);
    LocalIp := Ip;
    Result := True;
  finally
    WSACleanup;
  end;
end;

猜你喜欢

转载自blog.csdn.net/qq_33397419/article/details/129702440