我正在使用 libresolv 库创建一个应用程序,该应用程序在命令行参数中采用 DNS 服务器名称并将主机名查询到此特定 DNS 服务器。
_res.nsaddr_list[0].sin_family = AF_INET;
_res.nsaddr_list[0].sin_addr.s_addr = inet_addr(argv[2]);
_res.nsaddr_list[0].sin_port = htons(NS_PORT);
_res.nscount = 1;
res_init ();
l = res_query(argv[1], ns_c_any, ns_t_a, nsbuf, sizeof(nsbuf));
如果使用,这适用于本地 DNS 服务器。但是当我尝试通过 8.8.8.8 (google nameserver) res_query 总是返回-1。我在网上搜索了类似的东西,发现 res_init 加载 /etc/resolv.conf。我不想要。我想覆盖 resolv.conf 并告诉解析器使用用户输入的名称服务器来使用。(谷歌服务器失败)