在网络传输中,将你IP字符串压缩成整形数据来传送,能大大提高效率:
192.168.255.155 将一个15 个字符的ip压缩成Int 类型 ,即将一个15字节的文件,转化成了4字节的int整数
代码:
#include <stdio.h>
int ip2int(char ip[]);
void int2ip(int n);
int main()
{
char s[] = "192.168.2.1";//定义一个ip字符串
int ipint = ip2int(s);
int2ip(ipint);
return 0;
}
int ip2int(char ip[]) //将字符串转化为一个int整数
{
int a, b, c, d;
sscanf(ip, "%d.%d.%d.%d", &a, &b, &c, &d);//分别读取字符串的数字部分
printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
int intip = 0;
char *p = &intip;
*p = a;
p++;
*p = b;
p++;
*p = c;
p++;
*p = d;
printf("ip = %d\n", intip);
return intip;
}
void int2ip( int n)//将一个整数转为ip并打印
{
unsigned char *p = &n;
printf("%u.%u.%u.%u\n", *p, *(p + 1), *(p + 2), *(p + 3));
}