就是说  我输入  IP 地址,解析出 域名来各位可以给个范例或指点一下吗?
先谢过了。

解决方案 »

  1.   


    试试这个uses WinSock;procedure TForm1.Button1Click(Sender: TObject);
      function IPAddrToName(IPAddr: String):String;
      var
        SockAddrIn: TSockAddrIn;
        HostEnt: PHostEnt;
        WSAData: TWSAData;
      begin
        WSAStartup($101, WSAData);
        SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
        HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
        if HostEnt<>nil then
        begin
          result:=StrPas(Hostent^.h_name)
        end
        else
        begin
          result:='';
        end;
      end;
    begin
      showmessage(IPAddrToName('xxx.xxx.xxx.xxx'));
    end;
      

  2.   

    如果对方dns没有做反向解析,是查不到的,http://ip.wen.la/ 个网站可以查,不知道数据是不是从cnnic来的
      

  3.   

    发送UDP/TCP的DNS反向查询报文就可以了,就是一个DNS header,type = PTR。可以从网上找一些LDNS的网址,CNC和telcom的都可以。不管怎么样,LDNS都会查到ADNS,通常正规的ADNS都支持反向查询(垃圾邮件服务器除外),即便ADNS不支持反向查询,一般LDNS也能根据历次查询缓存的结果,给你拼凑一个PTR的结果出来。