C++ IP和int值之间的转换

来源:互联网 发布:死而后已不亦远乎翻译 编辑:程序博客网 时间:2024/05/16 19:02

正常可见IP 为 127.0.0.1
实际存储为整形就是将IP的四个整数放到整形对应的四个字节上

#define _IP_MARK "."//IP转换成intunsigned 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转换成IPstring 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;  } 
原创粉丝点击