2

我有一个本地网络接口: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_address=时"",我只能看到:

[:: 1]:80, 
127.0.0.1:80

local_address=时"0.0.0.0",我只看到:

0.0.0.0:80

local_address=时"192.168.0.73",我看到:

192.168.0.73:80

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

示例输出必须是:

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

1 回答 1

1

这里有一个 C++ 包装器:http getifaddrs: //vrjuggler.org/docs/vapor/2.2/programmer.reference/namespacevpr.html#aadd07b8751f2d2ba6b757e9c11fd7eab

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

于 2013-06-25T12:06:34.353 回答