指定libcurl域名解析(dns)服务器

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

因某些运营商会恶意锁死竞争对手的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,
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值