1.#define M_IP2UINT(mA, mB, mC, mD) ((DWORD)((mA << 24) + (mB << 16) + (mC << 8) + mD))
const TCHAR* const g_cszIPFmt = _T("%d.%d.%d.%d");
2.
- /// <summary>
- /// IP地址转换函数
- /// </summary>
- /// <param name="ip">点分十进制IP</param>
- /// <returns>转换后的数值</returns>
- protected Int64 GetIpToInt(string ip)
- {
- string[] arrIP = ip.Split('.');
- Int64 IntIP = Int64.Parse(arrIP[0]) * 255 * 255 * 255 + Int64.Parse(arrIP[1]) * 255 * 255 + Int64.Parse(arrIP[2]) * 255 + Int32.Parse(arrIP[3]);
- return IntIP;
- }
3.下面贴一个我自己写的完整版的:
void CTechFilter::vPriTenPointIP2String(string& strIP)
{
char* strIPTemp = new char[strIP.size() + 1] ;
strcpy(strIPTemp, strIP.c_str()) ;
strIPTemp[strIP.size()] = 0 ;
int nRollSize = 24 ;
__int64 nSum = 0 ;
char* tokenPtr = strtok(strIPTemp, ".") ;
while (NULL != tokenPtr)
{
nSum += _atoi64(tokenPtr) << nRollSize ;
nRollSize -= 8 ;
tokenPtr = strtok(NULL, ".") ;
}
char szTemp[255] ;
strIP = _i64toa(nSum, szTemp, 10) ;
}
本文介绍了三种不同的IP地址转换方法,包括宏定义实现、字符串数组解析转换及字符串逐段解析转换成整数。通过这些方法,可以将常见的点分十进制IP地址转换为整数形式,便于在网络编程中进行比较和处理。
3166

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



