怎么把一个整形转化成一个IP ADDRESS类型?thanks!

解决方案 »

  1.   

    没人知道吗?
    那哪位知道怎么把一个IP ADDRESS得到的地址在CListCtrl控件上显示??
      

  2.   

    那怎么把IP转换成CString类呢?谢谢,郁闷中!!!!!!
      

  3.   

    //这是我获取和转化ip的方法,希望对你有帮助
    int CMyDlg::GetLocalIP(CString &strIPAddr)
    {
    char szHostName[256];
    int nRetCode;
    nRetCode=gethostname(szHostName,sizeof(szHostName));
    if(nRetCode!=0)
    {
    //产生错误
    // szHostName = _T("没有取得");
    return GetLastError();
            
    } struct hostent FAR * lpHostEnt=gethostbyname(szHostName);
    if(lpHostEnt==NULL)
    {
    //产生错误
    strIPAddr = _T("");
    return GetLastError();
    }
    //获取IP
    LPSTR lpAddr=lpHostEnt->h_addr_list[0];
    if(lpAddr)
    {
    struct in_addr inAddr;
    memmove(&inAddr,lpAddr,4);
    //转换为标准格式
    strIPAddr = inet_ntoa(inAddr);
    if(strIPAddr.IsEmpty())
    strIPAddr = _T("没有取得");
    } return 1;
    }
      

  4.   

    struct in_addr inAddr;
    inAddr.S_un.S_addr = dwIpAddr; // 你的整数ip地址
    char *pIp = inet_ntoa(inAddr);
      

  5.   

    BOOL Name2Ips(CString& strHostName,CUIntArray &aIp) //resolve a string ip or name to ip
    {
    aIp.RemoveAll();    LPHOSTENT lpstHost = NULL;
        UINT nIp = inet_addr((LPCTSTR)strHostName);//is a IP address
    if (nIp == INADDR_NONE)
    {
        lpstHost = gethostbyname((LPCTSTR)strHostName);//is a Name
        if (!lpstHost)
    return FALSE;
    else
    for(int i = 0; lpstHost!= NULL && lpstHost->h_addr_list[i]!= NULL; i++ )
    aIp.Add(*(UINT *)lpstHost->h_addr_list[i]);
    }
    else
    aIp.Add(nIp);
    return TRUE;
    }
    UINT String2Ip(LPCTSTR szHost)
    {
    CUIntArray aIp;
    if(Name2Ips(CString(szHost),aIp))
    {
    return aIp[0];
    }
    else
    return 0;
    }
    CString Ip2String(UINT nIp)
    {
    if(!nIp)
    return CString((LPCTSTR)NULL); //zero
    char buff[16];
    sprintf(buff,"%d.%d.%d.%d",nIp%256,nIp/256%256,nIp/256/256%256,nIp/256/256/256);
    return CString(buff);
    }