【发布时间】:2013-07-24 12:14:44
【问题描述】:
我想检测一个地址是否是临时 ipv6 地址,我使用 getifaddrs 来获取地址列表,但不知道如何从那里获取该信息。如果可能的话,我希望它适用于 linux、osx、solaris 和 windows。
我似乎在 Linux 中 IFA_F_TEMPORARY 设置在 inet6_ifaddr->ifa_flags 中,但不确定如何从 getifaddrs 返回的 ifaddrs 中获取它。
似乎在 OSX 上我需要带有 SIOCSIFINFO_FLAGS 的 octl,而我不知道 Solaris 或 Windows。
有任何机构可以做到这一点的示例代码。
【问题讨论】:
-
你找到答案了吗,何塞?我自己也很好奇……
-
不行,有点复杂,决定不实现了。
-
无赖。您是否至少有代码显示如何在 OS X 上使用
octl来解决问题? -
trac.v2.nl/browser/zeroconf/mDNSResponder/mDNSMacOSX/… 查看检查 IN6_IFF_TEMPORARY 的代码
-
谢谢,很有帮助!在 OS X 和 iOS 模拟器上运行良好,但唉!
<netinet6/in6_var.h>不包含在 iOS 设备上。我怀疑 Apple 不希望任何人知道 iOS 上的 IPv6 地址是否是私有/临时的。
标签: c network-programming