分享

关于in

 terryecnu 2014-05-14
分类: 网络编程 2012-03-14 16:02 1651人阅读 评论(0) 收藏 举报


 struct in_addr {

  in_addr_t s_addr;   };   结构体in_addr 用来表示一个32位的IPv4地址.   in_addr_t 一般为 32位的unsigned long.   其中每8位代表一个IP地址位中的一个数值.   例如192.168.3.144记为0xc0a80390,其中 c0 为192 ,a8 为 168, 03 为 3 , 90 为 144   打印的时候可以调用inet_ntoa()函数将其转换为char *类型.

   

  这次我要打印IP_MULTICAST_IF(制定外出接口)。数据类型是:in_addr{} 。 我要打印s_addr。

  

  1. struct in_addr s;  
  2. printf("%lu\n", s.s_addr);  
    

  inet_ntoa()函数的用法举例:

  1. #include <stdio.h>  
  2. #include <arpa/inet.h>  
  3.   
  4. int main()  
  5. {  
  6.   in_addr_t x;  
  7.   
  8.   char *z; /* well set this equal to the IP string address returned by inet_ntoa */  
  9.   
  10.   char *y = (char *)&x; /* so that we can address the individual bytes */  
  11.   
  12.   y[0] = 12;  
  13.   y[1] = 34;  
  14.   y[2] = 56;  
  15.   y[3] = 78;   
  16.   
  17.   z = inet_ntoa(*(struct in_addr *)&x); /* cast x as a struct in_addr */  
  18.   
  19.   printf("z = %s\n", z);  
  20.   
  21.   return 0;  
  22. }  

输出是:z  = 12.34.56.78

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多