C++ 如何将可用本地接口的所有地址输出到控制台?
我有一个本地网络接口: 127.0.0.1, 192.168.0.73 如果我使用以下代码: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
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(跨平台,像往常一样,界面更友好一点)来实现?五年前人们也想要同样的东西,但似乎什么都没有改变: