C++ 如何将可用本地接口的所有地址输出到控制台?

C++ 如何将可用本地接口的所有地址输出到控制台?,c++,boost-asio,C++,Boost Asio,我有一个本地网络接口: 127.0.0.1, 192.168.0.73 如果我使用以下代码: std::string local_address = ""; std::string local_port= "80"; boost::asio::ip::tcp::resolver resolver(io_service_executors_); ba::ip::tcp::resolver::query query(local_address, local_port); local_endpoint

我有一个本地网络接口: 127.0.0.1, 192.168.0.73

如果我使用以下代码:

std::string local_address = "";
std::string local_port= "80";
boost::asio::ip::tcp::resolver resolver(io_service_executors_);
ba::ip::tcp::resolver::query query(local_address, local_port);
local_endpoint_it_ = resolver.resolve(query);

for(auto it = local_endpoint_it_; it != ba::ip::tcp::resolver::iterator(); ++it)
    std::cout << it->endpoint() << std::endl;
local\u address
=
“0.0.0.0”
时,我只看到:

[:: 1]:80, 
127.0.0.1:80
0.0.0.0:80
当本地地址=
“192.168.0.73”
时,我看到:

192.168.0.73:80
如果此时我不知道本地接口的地址,如何获取它们的所有地址

示例输出必须是:

127.0.0.1:80, 
192.168.0.73:80 
and may be [:: 1]: 80

有一个C++包装器用于<代码> GETFADDRS 这里:


它不是Boost Asio的一部分,但该项目使用Boost并自行实现,所以希望您会发现它适合您。

@John Zwinck谢谢!也许可以通过使用boost::asio(跨平台,像往常一样,界面更友好一点)来实现?五年前人们也想要同样的东西,但似乎什么都没有改变: