ip地址实际上是一个整数。
ip地址的格式: 0.0.0.0 255.255.255.255
例1
#include <stdio.h>
int main (void)
{
unsigned int a = 235423523;
unsigned char *p = (unsigned char *)&a;
int i;
for(i = 0;i < 4; i++)
{
printf("%u\n",p[i]);
}
return 0;
}
输出结果:
上面输出结果倒过来就是ip地址。
在ubuntu 下面:
$ ping 235423523
就会得到ip地址:14.8.71.35
例2 直接输出 IP 地址
#include <stdio.h>
int main (void)
{
unsigned int a = 235423523;
unsigned char *p = (unsigned char *)&a;
printf("%u.%u.%u.%u\n",p[3] ,p[2], p[1], p[0]);
return 0;
}
输出结果:
例3 输入任意的数,转化成ip地址
#include <stdio.h>
int main (void)
{
unsigned int a ;
scanf("%u", &a);
unsigned char *p = (unsigned char *)&a;
printf("%u.%u.%u.%u\n",p[3] ,p[2], p[1], p[0]);
return 0;
}
输出结果:
可以在ubuntu 系统下面尝试: ping 987654321
987654321 就是 ip 地址的一个整数表达,所对应的ip地址就是:58.222.104.177
把这个数放到浏览器中,同样可以当做ip地址使用:
在网络中传递ip地址,实际就是传递的一个整数。