2013-06-25 18 views
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 
+0

@John Zwinck謝謝!可以通過使用boost :: asio來完成(跨平臺和通常的一點點更友好的界面)? – Alex

+0

五年前人們也想要同樣的東西,但似乎沒有任何改變:http://comments.gmane.org/gmane.comp.lib.boost.asio.user/2449 –

回答

相關問題