Ip地址转32位整数 和 32位整数转化对应的IP地址


一:解题思路

举例:一个ip地址为10.0.3.193 转化后的整数为:167773121

二:完整代码示例 (C++版和Java版)

Ip地址转化为整数 C++代码:

int ipToInt(string s)
{
    int ret = 0;
    int num = 0;

    for (int i = 0; i < s.size(); i++)
    {
        if (s[i] != '.')
        {
            num = num * 10 + (s[i]-'0');
        }
        else
        {
            ret <<= 8;
            ret += num;
            num = 0;
        }
    }
    ret <<= 8;
    ret += num;

    return ret;
}

 整数转化为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 += ".";
        }
    }

    return strRet;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM