注意程序的数据的endian
头文件的包含
#include <string.h>//bzero memset
#include <netinet/in.h>//struct in_addr
#include <sys/socket.h>//AF_INET
#include <arpa/inet.h>//inet_*
int
main(int argc, char **argv)
{
char str[]="172.16.10.196";
char str1[16];
struct in_addr myin;
int ret = 1;
unsigned long lip = 0xac100ac4;//主机序
ret = inet_pton(AF_INET,str,&myin);//网络序输出
printf("%2X/n",myin.s_addr);//网络序
myin.s_addr = ntohl(myin.s_addr);
printf("%2X/n",myin.s_addr);
printf("%2X/n",lip);
lip = htonl(lip);
printf("%2X/n",lip);
ret = inet_ntop(AF_INET,&lip,str1,__SOCK_SIZE__);//网络序输入
printf("%s/n",str1);
ret = inet_aton(str1,&myin);
printf("%2X/n",myin.s_addr);//网络序输出
printf("%2X/n",inet_addr(str1));//网络序输出
printf("%s/n",inet_ntoa(myin));//网络序输入
exit(0);
}
本文通过一个C语言示例程序介绍了如何进行网络字节序与主机字节序之间的转换,包括使用`inet_pton`、`ntohl`、`htonl`等函数进行IP地址的解析与格式转换。

1573

被折叠的 条评论
为什么被折叠?



