gpt4 book ai didi

c++ - 使用 boost 库在我的 PC 中获取我的以太网设备 IP 地址列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:31 42 4
gpt4 key购买 nike

我有一台有很多以太网卡的 PC。
他们每个人都有一个 IP 地址。
例如:

eth0 "192.168.1.2"    
eth1 "192.168.1.100"
eth2 "192.168.2.1"

如何使用 boost 库获取这些列表?

我使用了这段代码,但只返回:“127.0.0.1”

boost::asio::io_service io;
boost::asio::ip::tcp::resolver resolver(io);
boost::asio::ip::tcp::resolver::query query("localhost","");
boost::asio::ip::tcp::resolver::iterator iter = resolver.resolve(query);
boost::asio::ip::tcp::resolver::iterator end;

while(iter != end) {
std::cout << iter->endpoint().address().to_string() << std::endl;
++iter;
}

最佳答案

如您所见,“localhost”特指环回接口(interface)。

要查看所有接口(interface),请按实际主机名查询;像这样的东西:

tcp::resolver resolver(io_service);
tcp::resolver::query query(boost::asio::ip::host_name(),"");
tcp::resolver::iterator it=resolver.resolve(query);

while(it!=tcp::resolver::iterator())
{
boost::asio::ip::address addr=(it++)->endpoint().address();

std::cout<<addr.to_string()<<std::endl;
}

关于c++ - 使用 boost 库在我的 PC 中获取我的以太网设备 IP 地址列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759801/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com