我只需要我的全局IPv6地址,而不需要本地链接地址。我已经将ai_flags设置为AI_ADDRCONFIG,就像msdn中提到的那样。但是GetAddrInfoW同时返回全局和本地链路地址。有没有办法从ADDRINFOW结果结构中找出地址的类型?
std::wstring whostname = L"hostname";
ADDRINFOW hints;
memset(&hints, 0, sizeof(ADDRINFOW));
hints.ai_family = AF_UNSPEC; // IPv4 and IPv6
hints.ai_socktype = SOCK_STREAM; // TCP only, no UDP
hints.ai_protocol = IPPROTO_TCP;
hints.ai_flags = AI_ADDRCONFIG; // Get only global IPv6 address
ADDRINFOW *list = NULL;
result = GetAddrInfoW(
whostname.c_str(),
NULL,
&hints,
&list
);发布于 2015-09-07 13:14:54
我猜这个应用程序接口并没有提供仅获取全局IPv6地址的功能。我已经成功地根据IPv6地址格式确定了全局地址。在Wiki中,该范围可用于标识本地链路地址。
https://stackoverflow.com/questions/32368314
复制相似问题