当前位置:  技术问答>linux和unix

inet_pton的疑问

    来源: 互联网  发布时间:2017-04-14

    本文导语:  刚接触IPV6,准备把字符串形式的IPV6地址转换为网络字节序的地址,说是用inet_pton,可是用了此函数,编译通过后,怎么每次运行都是不同的值呢? 以下为程序: #include #include #include #include int   main(int argc, char *...

刚接触IPV6,准备把字符串形式的IPV6地址转换为网络字节序的地址,说是用inet_pton,可是用了此函数,编译通过后,怎么每次运行都是不同的值呢?
以下为程序:

#include
#include
#include
#include

int   main(int argc, char **argv)
{
        char ip[] = "ff3f:2345:1234::1234";
        struct in6_addr addr;

        int ret = inet_pton(AF_INET6, ip, (void *)&addr);   //IP字符串 ——》网络字节流
        if(0 == ret)
        {
                printf("inet_pton error, return! n");
                return -1;
        }
        else
        {
                printf("inet_pton ip: %un",addr.s6_addr);
        }


}

|
/* IPv6 address */
struct in6_addr
  {
    union
      {
uint8_t __u6_addr8[16];
#if defined __USE_MISC || defined __USE_GNU
uint16_t __u6_addr16[8];
uint32_t __u6_addr32[4];
#endif
      } __in6_u;
#define s6_addr __in6_u.__u6_addr8
#if defined __USE_MISC || defined __USE_GNU
# define s6_addr16 __in6_u.__u6_addr16
# define s6_addr32 __in6_u.__u6_addr32
#endif
  };

// 这里打印的是数组uint8_t __u6_addr8[16]的首地址,当然每次运行都是不同的值了
printf("inet_pton ip: %un",addr.s6_addr);

|


打印一个数组的内容,不会?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • inet_pton问题
  • 为什么?关于inet_pton()
  • 在linux2.6内核中为什么找不到地址转换函数inet_pton的实现?在很多FreeBSD的内核中却能够找到?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,