将IPV4转换成整数

一个ip地址字符串如“192.168.100.100”,怎么(4*3+3+1)*1=16个字节,如果将ip地址是32bit,可以使用4个字节实现ip地址的压缩。

 1 #include <stdio.h>

 2 #include <stdlib.h>

 3 //将IPV4转换成整数,例如192.168.0.0  32it 可以使用一个unsigned int表示

 4 int change(char * str)

 5 {

 6     unsigned int a=0;

 7     int n=0;//点的个数

 8     int sum=0;//每个数值

 9     int m[]={0x1000000,0x10000,0x100,1};

10     while(*str!='\0')

11     {

12         if(*str !='.')

13         {

14             sum=sum*10+(*str-'0');

15         }

16         else

17         {

18             a+=sum*m[n++];

19             sum=0;

20         }

21         str++;

22     }

23     a+=sum;

24     return a;

25 }

26 

27 int main()

28 {

29     char*str="192.168.1.255";

30     printf("%d\n",change(str));

31     return 0;

32 }

 

你可能感兴趣的:(ipv4)