Boost Asio iostream - 如何获取本地IP地址

6

以下是我的问题:

我正在使用boost :: asio :: ip :: tcp :: iostream连接到服务器:

boost::asio::ip::tcp::iostream s(IP, "1237");

现在我想要获取我的本地IP地址。我已经在Google的深处找到了如何使用socket来实现,但是对于流呢? 我期望由于tcp::iostream建立在socket之上,应该像这样: s.local_endpoint().address() 但是在经过Google和DuckDuckGo的长时间搜索后,我仍然不知道如何做到这一点。我尝试了几种最明显的排列组合,但仍然没有成功。 那么,有没有简单的方法来实现它,还是必须使用socket? 只需要在Linux上运行即可,如果这很重要。


1
你似乎误解了主机只有一个IP地址的概念。 - Juliano
3
问题仍然有效:我如何检索本地主机的所有IP地址? - Daniele Pallastrelli
1个回答

1
假设是Linux系统,使用getifaddrs(3)来获取本地系统的接口列表。

我在你回答之前改变了应用程序的行为,所以我忘记了这个问题,但是没错,那就是答案 :) - Darth Hunterix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接