ip address转换

IP address转换的两个主要函数:inet_addr和inet_ntoa
IP地址有两种不同的格式:

1.将十进制点分形式转换为二进制形式:
int inet_addr(const char * strptr);
返回值:成功:32位二进制IP地址 失败:-1
struct sockaddr_in serveraddr;
serveraddr.sin_addr.s_addr = inet_addr(“192.168.1.100”);
2.将二进制形式转换成十进制点分形式字符串:
char * inet_ntoa(struct in_addr in);
struct sockaddr_in serveraddr;
printf("%s\n",inet_ntoa(serveraddr.sin_addr));

#if 0
#define IPV4(a,b,c,d) ((a<<0)|(b<<8)|(c<<16)|(d<<24))
unsigned int value=IPV4(127,0,0,1);
in_addr_t ip;
memcpy(&ip,&value,sizeof(value));
printf(“the ip value is %s”,inet_ntoa(((struct in_addr)&ip)));
#endif
3.新型网路地址转化函数inet_pton和inet_ntop
#include <arpe/inet.h>
int inet_pton(int family, const char *strptr, void *addrptr); //将点分十进制的ip地址转化为用于网络传输的数值格式
返回值:若成功则为1,若输入不是有效的表达式则为0,若出错则为-1

const char * inet_ntop(int family, const void *addrptr, char *strptr, size_t len); //将数值格式转化为点分十进制的ip地址格式
返回值:若成功则为指向结构的指针,若出错则为NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值