#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int ip_list(char *str);
int main(int arg,char **argv)
{
unsigned int ip_array[3];
int i;
if(argc < 3)
{
printf("请输入三个IP地址,中间以空格隔开!如:192.168.1.2");
exit(1);
}
for(i=0; i<3; i++)
{
ip_array[i] = ip_list(argv[i+1]);
printf("array[%d] = %04x\n",i,ip_array[i]);
}
return 0;
}
/*处理字符串ip*/
unsigned int ip_list(char *str)
{
unsigned char src[4];
unsigned int ip;
//存储4个字节的ip地址
int i = 0,j = 0;
memset(src,0,4);
/*处理IP地址:4个字节*/
for(i=0;i<3;i++)
{
while(str[j] != '.' && str[j] != '\0')
{
src[i] = src[i]*10 + (str[j++]-'0');
}
j++;
}
/*存储到32位的整型变量ip中*/
ip = (src[0]<<24);
ip = (ip | (src[1]<<16));
ip = (ip | (src[2]<<8));
ip = (ip | src[3]);
return ip;
}