(Linux网络编程)域名转换函数族——使用gethostbyname函数2

   # include  & lt; netdb.h>   # include  & lt; sys/socket.h>   # include  & lt; stdio.h>   # include  & lt; stdlib.h>   # include  & lt; sys/types.h>   # include  & lt; string.h>   # include  & lt; arpa/inet.h>   # include  & lt; netinet/in.h>   int 主要(int 命令行参数个数,char  * argv [])   {   char 才能;* ptr, * * pptr;   struct 才能;hostent  * hptr;   struct 才能;in_addr  hpaddr;//使才能用argv[1]作为参数   ptr 才能=,argv [1];//调才能用gethostbyname函数,将结果存放到hptr中   如果才能((=hptr  gethostbyname (ptr))==, NULL),,//如果调用函数失败   {才能   ,,,printf("解析域名% s失败。\ n”(ptr);   ,,,return  0;   ,,}   ,,printf("目标的官方域名是% s \ n”, hptr→h_name);//由才能于目标可能有多个别名,所以统统打印   的才能(pptr =, hptr→h_aliases; * pptr  !=,零;pptr + +)   {才能   ,,,printf("目标的别名是% s \ n”, * pptr);   ,,}//根才能据地址类型输出地址   开关才能(hptr→h_addrtype)   {才能   ,,,case  AF_INET:   ,,,case  AF_INET6:,,,//针对IPV4和IPV6均进行如下操作,因为之前没有休息   ,,,{   ,,,,,pptr =, hptr →, h_addr_list;   ,,,,,,(零;;* pptr  !=, pptr + +)   ,,,,,{   ,,,,,,,memcpy(及hpaddr pptr 4);   ,,,,,,,printf("目标地址是:% s \ n”, inet_ntoa (hpaddr));   ,,,,,}   ,,,}   ,,,休息,,,   ,,,默认值:   ,,,,,printf("未知的地址类型\ n”);   ,,}   return 才能;0;   }


(Linux网络编程)域名转换函数族——使用gethostbyname函数2