gpt4 book ai didi

c++ - 为什么在 Ubuntu 18.04.1 的 netinet 中没有定义 in_addr6?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:13 24 4
gpt4 key购买 nike

我目前正在用 C 语言构建一个跨平台库,它可以处理 IP 地址。所以我想我可以使用类型 in_addrin_addr6来表示这些值,因为它们看起来非常便携。

但它看起来像 in_addr6 <netinet/in.h> 中未定义结构在我安装的 Ubuntu 18.04.1(适用于 Linux 的 Windows 子系统)中。

当我在标题中搜索 in_addr6 时,我没有得到任何结果以下方式:

robin@ROBIN-PC:/usr/include/netinet$ grep -rnw '/usr/include/netinet' -e 'in_addr6'

如果我搜索 in_addr我得到多个结果:

robin@ROBIN-PC:/usr/include/netinet$ grep -rnw '/usr/include/netinet' -e 'in_addr'
/usr/include/netinet/if_ether.h:90: /* struct in_addr *ipaddr; */ \
/usr/include/netinet/igmp.h:70: struct in_addr igmp_group; /* group address */
/usr/include/netinet/in.h:31:struct in_addr
/usr/include/netinet/in.h:241: struct in_addr sin_addr; /* Internet address. */
/usr/include/netinet/in.h:247: sizeof (struct in_addr)];
/usr/include/netinet/in.h:267: struct in_addr imr_multiaddr;
/usr/include/netinet/in.h:270: struct in_addr imr_interface;
/usr/include/netinet/in.h:276: struct in_addr imr_multiaddr;
/usr/include/netinet/in.h:279: struct in_addr imr_interface;
/usr/include/netinet/in.h:282: struct in_addr imr_sourceaddr;
/usr/include/netinet/in.h:326: struct in_addr imsf_multiaddr;
/usr/include/netinet/in.h:329: struct in_addr imsf_interface;
/usr/include/netinet/in.h:337: struct in_addr imsf_slist[1];
/usr/include/netinet/in.h:341: - sizeof (struct in_addr) \
/usr/include/netinet/in.h:342: + (numsrc) * sizeof (struct in_addr))
/usr/include/netinet/in.h:602:extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
/usr/include/netinet/in.h:603: struct in_addr __group, uint32_t *__fmode,
/usr/include/netinet/in.h:604: uint32_t *__numsrc, struct in_addr *__slist)
/usr/include/netinet/in.h:608:extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
/usr/include/netinet/in.h:609: struct in_addr __group, uint32_t __fmode,
/usr/include/netinet/in.h:611: const struct in_addr *__slist)
/usr/include/netinet/ip.h:128: struct in_addr ip_src, ip_dst; /* source and dest address */
/usr/include/netinet/ip_icmp.h:145: struct in_addr ih_gwaddr; /* gateway address */

这给我带来了一些问题:

  • in_addr6在另一个 header 中定义的结构? (会猜不,因为 grep -rnw '/usr/include/' -e 'in_addr6' 没有结果)
  • 为什么在我安装的 Ubuntu 中没有定义 in_addr6 结构?
  • 您预计什么时候可以定义 in_addr6(例如:其他发行版或当 Ubuntu 未安装为 WSL 时)?

最佳答案

in_addr6 结构特定于 Windows。结构in6_addr 在 Windows、Linux 和 macOS 中可用,应该用于可移植库。

关于c++ - 为什么在 Ubuntu 18.04.1 的 netinet 中没有定义 in_addr6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52236614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com