如何使用libuv执行DNS查找?

时间:2017-10-09 13:41:36

标签: c dns libuv

我正在尝试使用来解析到IP地址的URL。我正在使用函数uv_getaddrinfo,它将addrinfo对象传递给我的回调。

这是我收到IP地址的回调吗?如何从addrinfo对象中提取IP地址?

1 个答案:

答案 0 :(得分:1)

{{}} {{}}} {{}}} {{}}} {{}}} {{}} {{}} {}} {{}}

许多LibUV函数直接使用uv_ipv4_name,因此它是一个有用的结构。

libuv提供addrinfouv_ipv4_name。您选择的功能取决于您拥有的uv_ipv6_name对象:

addrinfo

您可能会从if (addrinfo.ai_family == AF_INET) { // ipv4 char c[17] = { '\0' }; uv_ip4_name((sockaddr_in*)(addrinfo.ai_addr), c, 16); std::cout << c << std::endl; } else if (addrinfo.ai_family == AF_INET6) { // ipv6 char c[40] = { '\0' }; uv_ip6_name((sockaddr_in6*)(addrinfo.ai_addr), c, 39); std::cout << c << std::endl; } 获得多个addrinfo结构。这些存储在单链表中,其中&#34; next&#34;指针是uv_getaddrinfo

这也很有用:utility functions