使用boost asio枚举我的卡的ipv4和ipv6地址

|| 我正在尝试枚举我的所有网卡(我有2张卡)的ipv4和ipv6地址。 我正在使用以下代码来做到这一点。
using boost::asio::ip::tcp;
boost::asio::io_service io_service;

    tcp::resolver resolver(io_service);
    tcp::resolver::query query(boost::asio::ip::host_name(),\"\");
    tcp::resolver::iterator it=resolver.resolve(query);

    while(it!=tcp::resolver::iterator())
    {
        boost::asio::ip::address addr=(it++)->endpoint().address();
        if(addr.is_v6())
        {
            std::cout<<\"ipv6 address: \";
        }
        else
            std::cout<<\"ipv4 address: \";

        std::cout<<addr.to_string()<<std::endl;

    }
该代码显示正确的ipv4地址,但不显示ipv6。这是输出
ipv6 address: ::1
ipv4 address: 192.168.10.200
ipv4 address: 192.168.10.236
我对ipv6知之甚少。当我列出有关使用ipconfig / all的网络接口的信息时,我看到实际的ipv6地址是
fe80::226:5aff:fe14:5687%5 
fe80::225:64ff:feb2:4f61%4
有人可以指导我如何列出ipv6地址。 谢谢。     
已邀请:
        如果平台是Windows 7 SP1,则链接本地接口将被跳过,因为Windows将它们标记为“ SkipAsSource”,这意味着ѭ3将不会返回它们,因此Boost也不会。 您可以尝试使用以下命令检查标志:
netsh int ipv6 show addresses level=verbose

Address fe80::e0:0:0:0%14 Parameters
---------------------------------------------------------
Interface Luid     : Teredo Tunneling Pseudo-Interface
Scope Id           : 0.14
Valid Lifetime     : infinite
Preferred Lifetime : infinite
DAD State          : Deprecated
Address Type       : Other
Skip as Source     : **true**
    

要回复问题请先登录注册