11
我想枚舉所有網卡(我有2卡)的ipv4和ipv6地址我的電腦。使用boost asio枚舉我的卡的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列出有關網絡接口的信息/我所看到的,實際的IPv6地址
fe80::226:5aff:fe14:5687%5
fe80::225:64ff:feb2:4f61%4
是否有人可以指導我如何列出IPv6地址。 謝謝。
'FE80 ::'是鏈路本地地址範圍內有可能加速僅列舉了全球範圍內的地址。 – 2011-06-13 14:36:46