ip地址转换成字符串

from://http://hi.baidu.com/hst_jiangbo/item/2a66d8eadeacb3215b2d643a


从网络上接收的ip地址,有时候为了节省空间,用一个32位无符号整形数据表示ipv4地址。我们接收到之后,又需要转换成呢个数字和点格式的字符串来进行后续的操作。

比较勤奋点的人会自己写个函数做转换。

我属于比较懒的。不愿意做别人已经做过的事情。实际上,在linux里面,这些转换都有系统函数完成的。

SYNOPSIS
       #include <sys/socket.h>
       #include <netinet/in.h>
       #include <arpa/inet.h>

       int inet_aton(const char *cp, struct in_addr *inp);

       in_addr_t inet_addr(const char *cp);

       in_addr_t inet_network(const char *cp);

       char *inet_ntoa(struct in_addr in);

       struct in_addr inet_makeaddr(int net, int host);

       in_addr_t inet_lnaof(struct in_addr in);

       in_addr_t inet_netof(struct in_addr in);

其中 inet_ntoa就可以完成我要的功能。简单实现过程如下:

struct in_addr   stInAddr;//必要的结构体,只要包含前面三个头文件,就不要犯愁这个结构的定义

unsigned int iTemp;       //保存整型的数据

unsigned char ipaddr[20]; //保存转换后的地址

stInAddr.s_addr=iTemp;
pIp=inet_ntoa(stInAddr);
strcpy(ipaddr,pIp);

就可以把iTemp转换成字符串保存到ipaddr中。后面的工作就可以继续下去了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值