C++ IP和int值之間的轉換(轉)


正常可見IP 為 127.0.0.1
實際存儲為整形就是將IP的四個整數放到整形對應的四個字節上


#define _IP_MARK "."

//IP轉換成int
unsigned int IPtoINT(const string & strIP)
{
    unsigned int nRet = 0;

    char chBuf[16] = "";
    memcpy_s(chBuf, 15, strIP.c_str(), 15);

    char* szBufTemp = NULL;
    char* szBuf = strtok_s(chBuf,_IP_MARK,&szBufTemp);

    int i = 0;//計數
    while(NULL != szBuf)//取一個
    {
        nRet += atoi(szBuf)<<((3-i)*8);
        szBuf = strtok_s(NULL,_IP_MARK,&szBufTemp);
        i++;
    }

    return nRet;
}

//int轉換成IP
string INTtoIP(uint32_t num)
{  

    string strRet = "";  
    for (int i=0;i<4;i++)  
    {  
        uint32_t tmp=(num>>((3-i)*8))&0xFF;  

        char chBuf[8] = "";
        _itoa_s(tmp, chBuf, 10);
        strRet += chBuf;

        if (i < 3)
        {
            strRet += _IP_MARK;
        }
    }  

    return strRet;  
}
---------------------
作者:僅僅學會簡單
來源:CSDN
原文:https://blog.csdn.net/u011261430/article/details/78112784
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM