如何根据域名比如www.sohu.com 或aaa.vicp.net来取得ip呢?

解决方案 »

  1.   

    uses winsock;function GetIP(Name:string) : string;
    type
      TaPInAddr = array [0..10] of PInAddr;
      PaPInAddr = ^TaPInAddr;
    var
      phe :PHostEnt;
      pptr : PaPInAddr;
      I : Integer;
      GInitData : TWSADATA;
    begin
      WSAStartup($101, GInitData);
      Result := '';
      phe :=GetHostByName(pchar(Name)); //返回一个指向主机信息结构的指针
      pptr := PaPInAddr(Phe^.h_addr_list); //强制转换
      result:=StrPas(inet_ntoa(pptr^[0]^));//返回一个点分形式的字符串IP地址
      WSACleanup;
    end;
      

  2.   

    function GetIPFromName(Name: string): string;
    var
      WSAData: TWSAData;
      HostEnt: PHostEnt;
    begin
      WSAStartup(2, WSAData);
      HostEnt := gethostbyname(PChar(Name));
      with HostEnt^ do
        Result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]),
          Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
      WSACleanup;
    end;