C++中inet_pton、inet_ntop函数的用法
目录
- 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_INET编程客栈6:
- 第二个参数是一个指向点分十进制串的指针:
- 第三个参数是一个指向转换后的网络字节序的二进制值的指针。
inet_ntop函数
和inet_pton函数正好相反,inetwww.devze.com_ntop函数是将网络字节序二进制值转换成点分十进制串。
- 第一个参数可以是AF_INET或AF_INET6:
- 第二个参数是一个指向网络字节序的二进制值的指针;
- 第三个参数是一个指向转换后的点分十进制串的指针;
- 第四个参数是目标的大小,以免函数溢出其调用者的缓冲区。
样例:
#include <stdio.h> #include <stdlib.hhttp://www.devze.com> #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("jsinet_ntop: %s\n", IPdotdec); return 0; }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论