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) ;
}