在DEPHI中如何取得本机的IP?

解决方案 »

  1.   

    楼上朋友,gethostbyname如何使用?谢谢
      

  2.   

    uses ...,winsock,...
    ...
    function GetLocalIp(var ALocalIp: String): Boolean; 
    var
      HostEnt: PHostEnt;
      Ip: string;
      addr: pchar;
      Buffer: array [0..63] of char;
      GInitData: TWSADATA;
    begin
      Result := False;
      try
        WSAStartup(2, GInitData);
        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])]);
        ALocalIp := Ip;
        Result := True;
      finally
        WSACleanup;
      end;
    end;