#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
/*
总结:
1、"192.168.1.100" ---> 0x6401a8c0(注意:该整数已经是网络字节序)
使用:inet_addr / inet_aton / inet_pton
2、0x6401a8c0 ---> "192.168.1.100"
使用: inet_ntoa / inet_ntop
3、其中,inet_pton/inet_ntop 较新
*/
int main()
{
//
// 1、"192.168.1.100" ---> 0x6401a8c0 (该整数已经是网络字节序)
//
int ip_addr=0;
ip_addr = inet_addr("192.168.1.100"); //设置ip点分十进制地址的地址
printf("ip_addr=0x%08x\n", ip_addr); //打印转换后的网络字节序
// 打印:ip_addr=0x6401a8c0
struct in_addr inet_ip_addr;
ip_addr = inet_aton("192.168.1.100", &inet_ip_addr);
printf("inet_ip_addr.s_addr=0x%08x\n",inet_ip_addr.s_addr);
// 打印:inet_ip_addr.s_addr=0x6401a8c0
ip_addr = inet_pton(AF_INET, "192.168.1.100", &inet_ip_addr);
printf("inet_ip_addr.s_addr=0x%08x\n",inet_ip_addr.s_addr);
// 打印:inet_ip_addr.s_addr=0x6401a8c0
printf("\n");
//
// 2、0x6401a8c0 ---> "192.168.1.100"
//
inet_ip_addr.s_addr=0x6401a8c0;
char *p=inet_ntoa(inet_ip_addr);
printf("inet_ntoa= %s\n", p);
// 打印:inet_ntoa= 192.168.1.100
char str[128];
const char *ptr = inet_ntop(AF_INET, &inet_ip_addr, str, sizeof(str));
printf("inet_ntop= %s\n", str); //打印ptr也可
// 打印:inet_ntop= 192.168.1.100
return 0;
}
inet_addr / inet_aton / inet_pton / inet_ntoa / inet_ntop使用小结
最新推荐文章于 2024-03-22 11:04:42 发布