0

我正在尝试从 struct ifaddrs获取网络接口信息

如何确定我正在查看的接口是 inet (ipv4) 还是 inet6 (ipv6)?

4

3 回答 3

3

您测试ifa_addr->sa_family- 它将AF_INET用于 IPv4 地址和AF_INET6IPv6 地址。

然后,您可以将ifa_addr成员投射到其中一个struct sockaddr_in *struct sockaddr_in6 *视情况而定。

于 2012-02-27T03:24:27.743 回答
0

在 FreeBSD 中,假设您对两者都有内核支持,那么 IPv4 与 IPv6 的问题只是配置问题。

FreeBSD 中的“GENERIC”内核包含“INET6”选项,它为您提供 IPV6。如果您尚未重建内核并排除该选项,那么您只需配置 IPv6 地址即可在任何接口上使用 IPv6。

于 2012-02-27T03:04:35.073 回答
0

您可以尝试在接口上打开一个 IPV6 套接字,看看它是否支持 IPV6。

于 2012-02-27T03:09:40.387 回答