怎么用c/c++将将ip地址转换成整数
1、首先打开vc6,点击左上角的“文件”——“新建”。

2、在弹出的窗口中选择win32控制台程序,建立一个名为ip的新工程。

3、在接下来的弹出窗口中选择“一个空工程”。

4、建立ip工程完成后,再次点击“文件”——“新建“,在弹出的窗口中选择”c++ source file“即c++源文件,然后命名为ip.cxx。

5、首先在main函数中加入如下代码,它用于检测程序输入的参数,我们的目的依然是实现ip.exe 后面接ip地址,然后输出ip地址整数的形式。
int main(int ac,char **pav)
{
if (ac!=2) {
printf("用于将ip地址转换成整数!\n使用方法 ip.exe ip地址\n示例: ip.exe 127.0.0.1\n");
return 0;
}
return 0;
}

6、然后需要用两个函数strtok()提取ip地址,同时使用atoi()将提取的ip地址保存为整数。这两个函数的声明一个在string.h头文件,一个在stdlib.h头文件,所以在源码文件的开头需要加上这两个头文件。

7、接下来就是循环提取ip地址字符串,并将提取的ip地址字符串转换成整数保存于数组中。
char *pstr=strtok(pav[1],".");
int a[4] = {0};
int inx;
unsigned ip_int;
for (inx=0; inx!=4 && pstr!= NULL; ++inx) {
a[inx] = atoi(pstr);
pstr = strtok(NULL, ".");
}

8、同样的方法将ip地址想象成4位256进制的数,还是以127.0.0.1为例,则127的位权即256的三次方,左面第一个0的位权为256的平方,右面第二个0的位权为256的1次方即256,最后的1位权即为256的0次方,将这些数相加即为ip地址的整数表现形式。
ip_int = a[0]*16777216 + a[1]*65536 + a[2]*256 + a[3];
printf("ip转换成整数为:%d\n",ip_int);

9、最后生成可执行程序即可。

10、执行效果如下图所示。
