注意程序的数据的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);
}