如何使用asio库获取IP地址的主机名?

时间:2018-03-15 15:46:02

标签: c++ boost-asio

我正在尝试从UDP端点获取主机名。但是我不知道boost.asio是否支持IP->主机名转换。有谁能回答我的问题?

2 个答案:

答案 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地址直接解析端点