最近的MDVR界面开发中,其中的一个网络界面要写一个IP地址转换的函数,如将“192.168.1.1”,转换为“192.168.001.001”,以下函数的功能实现IP地址的格式化输出。
static int IPConvert(char *str)
{
long ipaddr = inet_addr(str);
return sprintf(str, "%03d.%03d.%03d.%03d", (ipaddr >> 0) & 0xFF, (ipaddr >> 8) & 0xFF, (ipaddr >> 16) & 0xFF, (ipaddr >> 24) & 0xFF);
}
1)inet_addr 函数:
头文件:在linux系统下,可用man inet_addr 查看:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
功能:将一个字符串型的点分十进制的IP转换成一个长整数型数(u_long类型)
2)sprintf 函数:
头文件:#include <stdio.h>
功能:把格式化的数据写入某个字符串。
注:“%03d”表示输出数字宽度为3,不足的左边补0;
"%03d.%03d.%03d.%03d",从右向左的填充。
输出结果:
“192.168.1.1”的整数形式为:16885952
整数16885952转化成字符串IP地址,并格式化输出:192.168.001.001
整数 ——> IP:
原文地址:http://www.cnblogs.com/haiqin2014/p/3822608.html