我正在尝试从UDP端点获取主机名。但是我不知道boost.asio是否支持IP->主机名转换。有谁能回答我的问题?
答案 0 :(得分:1)
getnameinfo就是你想要的。
getnameinfo((sockaddr*)&addr, sizeof(addr), hostname, sizeof(hostname), NULL, NULL, 0);
答案 1 :(得分:0)
#include<asio.hpp>
#include<exception>
#include<iostream>
int main()
{
try
{
asio::io_service io_service;
asio::ip::udp::resolver rsv(io_service);
for(const auto &ele : rsv.resolve(asio::ip::udp::endpoint(asio::ip::address_v4({192,168,1,163}),0)))
{
std::cout<<ele.host_name()<<'\n';
}
}
catch(const std::exception &e)
{
std::cerr<<e.what()<<'\n';
return 1;
}
}
我已经找到了如何通过ip获取主机名。只需使用ip地址直接解析端点