我正在尝试使用libuv来解析到IP地址的URL。我正在使用函数uv_getaddrinfo
,它将addrinfo
对象传递给我的回调。
这是我收到IP地址的回调吗?如何从addrinfo
对象中提取IP地址?
答案 0 :(得分:1)
{{}} {{}}} {{}}} {{}}} {{}}} {{}} {{}} {}} {{}}
许多LibUV函数直接使用uv_ipv4_name
,因此它是一个有用的结构。
libuv提供addrinfo
和uv_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