其原型为:
#include <netdb.h>
struct hostent * gethostbyname2(const char *hostname, int family);成功返回非空指针,出错返回空指针,同时设置 h_errno
该函数的逻辑依赖于参数family和解析器选项RES_USE_INET6,对于新的选项RES_USE_INET6,函数gethostbyname2操作
如果参数family是AF_INET,则查询A记录。若不成功,则返回一个空指针,叵成功,则返回地址的类型及大小依赖于新的解析器选项RES_USE_INET6;若选项未设置,则返回IPv4地址,结构hostent的成员h_length的值为4;若选项设置 ,则返回IPv4映射的IPv6地址,结构hostent的成员h_length的值为16。
如果参数family为AF_INET6,则查询AAAA记录,若成功,则返回IPv6地址,结构hostent的成员h_length的值为16,否则返回一个空指针。

本文深入探讨了gethostbyname2函数的使用逻辑,特别关注于其在解析不同地址类型(IPv4和IPv6)时的行为变化,以及如何通过设置解析器选项RES_USE_INET6来优化IPv6地址的查询过程。

200

被折叠的 条评论
为什么被折叠?



