目录
  • C++中inet_pton、inet_ntop函数
    • 头文件
    • inet_pton函数
    • inet_ntop函数
  • inet_pton和inet_ntop使用总结
    • 总结

      C++中inet_pton、inet_ntop函数

      头文件

      windows下:

      #include <WS2tcpip.h>

      linux下:

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

      inet_pton函数

      将点分十进制串转换成网络字节序二进制值,此函数对IPv4地址和IPv6地址都能处理。

      • 第一个参数可以是AF_INET或AF_INET6:
      • 第二个参数是一个指向点分十进制串的指针:
      • 第三个参数是一个指向转换后的网络字节序的二进制值的指针。

      inet_ntop函数

      和inet_pton函数正好相反,inet_ntop函数是将网络字节序二进制值转换成点分十进制串。

      • 第一个参数可以是AF_INET或AF_INET6:
      • 第二个参数是一个指向网络字节序的二进制值的指针;
      • 第三个参数是一个指向转换后的点分十进制串的指针;
      • 第四个参数是目标的大小,以免函数溢出其调用者的缓冲区。

      样例:

      #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> int main (void) { char IPdotdec[20]; //存放点分十进制IP地址 struct in_addr s; // IPv4地址结构体 // 输入IP地址 printf("Please input IP address: "); scanf("%s", IPdotdec); // 转换 inet_pton(AF_INET, IPdotdec, (void *)&s); printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字节序 // 反转换 inet_ntop(AF_INET, (void *)&s, IPdotdec, 16); printf("inet_ntop: %s\n", IPdotdec); }

      inet_pton和inet_ntop使用总结

      #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main (void) { char IPdotdec[20]; //存放点分十进制IP地址 struct in_addr s; // IPv4地址结构体 // 输入IP地址 printf("Please input IP address: "); scanf("%s", IPdotdec); // 转换 inet_pton(AF_INET, IPdotdec, (void *)&s); printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字节序 // 反转换 inet_ntop(AF_INET, (void *)&s, IPdotdec, 16); printf("inet_ntop: %s\n", IPdotdec); return 0; }

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持本网站。

      您可能感兴趣的文章:

      • 详解inet_pton()和inet_ntop()函数
      • C语言详解select函数的使用
      • C++中Socket网络编程实例详解