Dns 使用google nameserver 8.8.8.8时,libresolv未解析名称

Dns 使用google nameserver 8.8.8.8时,libresolv未解析名称,dns,libresolv,Dns,Libresolv,我正在使用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

我正在使用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(谷歌名称服务器)时,res_查询总是返回-1。 我在网上搜索了一些类似的东西,发现res_init loads/etc/resolv.conf。这是我不想要的。我想覆盖resolv.conf并告诉解析器使用用户输入的名称服务器来使用