正常可见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;
}
本文介绍了一种将IP地址转换为整数以及将整数转换回IP地址的方法。通过这种方式可以更方便地存储和处理IP地址。文章提供了具体的C++实现代码,包括两个主要函数:IPtoINT用于IP地址到整数的转换,INTtoIP用于整数到IP地址的转换。

1691

被折叠的 条评论
为什么被折叠?



