IP和整数的相互转换

来源:互联网 发布:windows xp开机蓝屏 编辑:程序博客网 时间:2024/06/02 03:21
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
using namespace std;
char strTemp[20];
char* numbertoIp(unsigned long nValue)
{
//    static char szAddr[16] = {0};
//    unsigned long ulMask[4] = {0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000};
//    for (int i = 0; i < 4; i++)
//    {
//    long l = (ulAddr & ulMask[i]) >> (i * 8);
//    ltoa(l, szAddr + strlen(szAddr), 10);
//    if (i != 3)
//    strcat(szAddr, ".");
//    }
//    return szAddr;
//    }
    sprintf( strTemp,"%d.%d.%d.%d",
        (nValue&0xff000000)>>24,
        (nValue&0x00ff0000)>>16,
        (nValue&0x0000ff00)>>8,
        (nValue&0x000000ff) );
    std::cout<<strTemp<<endl;
    return strTemp;
    }
int main ()
{
char str[] ="244.255.213.123";
const char * split = ".";
char * p;
int i =0;
int a[4];
int sum = 0x0;
p = strtok (str,split);
while(p!=NULL) {
//printf ("%s\n",p);
a[i] = atoi(p);
p = strtok(NULL,split);
//printf ("%x",a[i]);
i++;
}
sum = 256*256*256*a[0] + 256*256*a[1] + 256*a[2] +a[3];
printf ("%x",sum);
numbertoIp(sum);
getchar();
return 0;
}
0 0
原创粉丝点击