因某些运营商会恶意锁死竞争对手的dns,如某动的光猫,直接把电信的114给墙了,导致系统无法通过114这个域名服务器解析域名
这里说明下如何设置libcurl下使用的dns服务器
一 分析
1 下载libcurl包
wget https://curl.haxx.se/download/curl-7.53.0.tar.bz2
tar xjf curl-7.53.0.tar.bz2
cd curl-7.53.0
2 libcurl设置DNS解析服务器
通过如下函数可以设置指定dns域名服务器
curl_easy_setopt(curl, CURLOPT_DNS_SERVERS, “xxx.xxx.xxx.xxx”);
3 libcurl dns部分源码分析
[jenkins@localhost lib]$ grep -r CURLOPT_DNS_SERVERS *
url.c: case CURLOPT_DNS_SERVERS:
进入url.c中,找到CURLOPT_DNS_SERVERS关键字,发现调用Curl_set_dns_servers函数
case CURLOPT_DNS_SERVERS:
result = Curl_set_dns_servers(data, va_arg(param, char *));
break;
在当前目录下索索Curl_set_dns_servers函数
[jenkins@localhost lib]$ grep -r Curl_set_dns_servers *
asyn-ares.c:CURLcode Curl_set_dns_servers(struct Curl_easy *data,
asyn-thread.c:CURLcode Curl_set_dns_servers(struct Curl_easy *data,