分享

in_addr 的解析

 xiaozhejiejie 2013-04-10

  IP地址结构:

   struct   in_addr {

                     union {

                            struct {

                                        unsigned  char s_b1,

                                                                s_b2,

                                                                s_b3,

                                                                s_b4;

                            } S_un_b;

                            struct {

                                        unsigned short s_w1,

                                                                 s_w2;

                            } S_un_w;

                            unsigend long S_addr;

                      }S_un;

                };

以上所指出的IP地址为IPV4,长度为32bit.unsigned char 为8bit,unsigned short 为16bit,unsigned long 为32bit.如果要表示一个IP地址:10.14.25.90依据上面的结构体,可以有4种不同的方式:假设定义结构体 in_addr sin_addr;

1.sin_addr.S_un.S_un_b.s_b1 = 10;  

   sin_addr.S_un.S_un_b.s_b1 = 14;

   sin_addr.S_un.S_un_b.s_b1 = 25;

   sin_addr.S_un.S_un_b.s_b1 = 90;

2.sin_addr.S_un.Sun_w.s_w1 = (14<<8)|10;

   sin_addr.S_un.Sun_w.s_w2 = (90<<8)|25;

3.sin_addr.S_un.S_addr = (90<<24)|(25<<16)|(14<<8)|10;

4.sin_addr.s_addr = (90<<24)|(25<<16)|(14<<8)|10;

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多