相信大家都知道花生壳吧?我是动态IP,用了花生壳后INTERNET可以访问我的网站,现在问题是怎么样得到我的这个二级域名对应的IP?我的域名是paper-plane.vicp.net,在我本机上用gethostbyname可以正确得到我的
IP,问题在于程序在其他人机器上运行后得到的却不是我的IP,是服务商的一级域名的IP。哪位高手有方法帮帮我啊???急!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    我本机得到的地址是218.108.XXX.XXX ,别人得到的是 211.147.224.75
      

  2.   

    我这边得到的是
    paper-plane.vicp.net的IP是:
    218.108.198.252;不知道对不对?
      

  3.   

    对啊,你程序里得到的?还是ping的?
      

  4.   

    #define SERVERNAME   "paper-plane.vicp.net"
    ////////////////////
    char *SERVERIP = new char[16];
    hosttoip(SERVERNAME,SERVERIP);/////////////////////////////
    BOOL CPlayGameDlg::hosttoip(LPCSTR host,char *ip)
    {
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2, 2), &wsaData);

    HOSTENT *ht = gethostbyname(host);
    if (!ht) return FALSE;
    sprintf(ip,"%d.%d.%d.%d",(byte)ht->h_addr_list[0][0],(byte)ht->h_addr_list[0][1],
    (byte)ht->h_addr_list[0][2],(byte)ht->h_addr_list[0][3]);
    WSACleanup();
    return TRUE;
    }
    ////////////////////哪地方有错误吗?
      

  5.   

    用我昨天在一个帖子里的代码:int GetIpAddress(const CString &sHostName, CStringArray &sIpAddress)
    {
    struct hostent FAR * lpHostEnt=gethostbyname(sHostName);
    sIpAddress.RemoveAll();
    if(lpHostEnt==NULL)
    {
    //产生错误
    return GetLastError();
    }
    //获取IP
    int i=0;
    LPSTR lpAddr=lpHostEnt->h_addr_list[i];
    CString temp;
    while(lpAddr)
    {
    i++;
    struct in_addr inAddr;
    memmove(&inAddr,lpAddr,4);
    //转换为标准格式
    temp=inet_ntoa(inAddr);
    if(temp.IsEmpty())
    {
    break;
    }
    sIpAddress.Add(temp);
    lpAddr=lpHostEnt->h_addr_list[i];
    }
    return 0;
    }
    调用:if(AfxSocketInit(NULL)==FALSE)//初始化socket
    {
    AfxMessageBox("Socket Error");
    }

    CStringArray ip;
             CString m_sHostName;
    m_sHostName="hpaper-plane.vicp.net";
    GetIpAddress(dlg.m_sHostName,ip);
    CString temp;
    int i=0;
    while(i<ip.GetSize())
    {

    temp+=ip[i];
    temp+=";\n";
    i++;
    }
    MessageBox(dlg.m_sHostName+"的IP是:\n"+temp);
    }
      

  6.   

    是啊,楼主已经发过一个这样的帖子了,难道zhucde的代码不行末?
      

  7.   

    不是不行,是gethostbyname()这个函数好象解析域名有点问题,
    有些人机器上可以,有些人却不行。
    可能跟不同的ISP的DNS解析有关系。
    怎样才能保证每台机器都能得出相同的IP呢?
      

  8.   

    DNS request timed out.
        timeout was 2 seconds.
    Non-authoritative answer:
    Name:    paper-plane.vicp.net
    Address:  219.82.102.60
      

  9.   

    asfdas
    csdn咋变成这个样子了?