因某些运营商会恶意锁死竞争对手的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 *

本文详细介绍了如何在libcurl中指定DNS服务器,包括分析libcurl源码中与DNS服务器设置相关的函数,并通过测试验证了设置过程。通过curl_easy_setopt()函数设置CURLOPT_DNS_SERVERS选项,可以在遇到运营商锁死特定DNS时,切换到其他DNS服务器以确保域名解析的正常进行。
最低0.47元/天 解锁文章
641





