rt

解决方案 »

  1.   

    CString GetAddrFromIp(CString ip)
    {
    WSADATA wsaData;
             LPHOSTENT lpHostEnt=NULL;
    DWORD dwIPAddr;
    CString str="Unknown address"; if(WSAStartup(WINSOCK_VERSION,&wsaData))
        AfxMessageBox("Could not get IP of computer!");
    else
    {
    dwIPAddr=inet_addr(ip);
    if(dwIPAddr==INADDR_NONE)
       AfxMessageBox("f");
        else
        {
            lpHostEnt=gethostbyaddr((LPSTR)&dwIPAddr,
    PF_INET_LENGTH,
    PF_INET);     if(lpHostEnt)
         str=(CString)lpHostEnt->h_name;
        else
       str="Unknown address";
    }
    }
         WSACleanup();
    return str;
    }上述函数也是用gethostbyaddr()获取域名,但经过测试只能获得局域网上主机名,不能得到广域网的。
     cwanter(海阔天空) ,如你所说函数调用在那个地方出问题???请指教!
      

  2.   

    gethostbyaddr()是通过netbios获得主机名,当然得不到域名了
    windows下好象没有逆向域名解析的调用
    要处理只能是在程序里你根据IP打开对应网站,分析对应的http头信息了
      

  3.   

    我查的好多的资料,也没有找到逆向域名解析的办法.
     windbells(风铃) :按你这么说,要想得到对应的域名就没那么简单了,
    根据IP, 来分析对应的http 头信息得到,那倒也不失为一种办法,只是这种做法是不是太复杂了?
    你有这方面的资料吗?或有例子,能发一份给我吗?
    mail: [email protected]
      

  4.   

    至少应该要走DNS协议吧?我觉得
      

  5.   

    看看whois
    在2000s下有一个whois服务器,用来解析这些信息
      

  6.   

    看看DNS的反向查找吧。不过偶没有做过~