关于DNS解析不受超时设置问题

在很多时候,我们尽管做了超时设置,但任然是无济于事的,后面上网查了很多文章,大致有了解决方案,但是造成这个问题的原因还是不太清楚的迷,下面就简单说一下我遇到的DNS解析超时问题:

刚开始只设置了请求超时`CURLOPT_TIMEOUT`选项,时间为3秒,如下:
curl_setopt($curl, CURLOPT_TIMEOUT, 3); // 设置超时限制防止死循环
发现curl执行时间是12秒多,又追加了连接超时`CURLOPT_CONNECTTIMEOUT`为2秒,如下:
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2); // 设置连接超时限制防止死循环
然鹅,并没有卵用,curl执行时间仍然是12秒,且报同样的curl_error [Resolving timed out after 3511 milliseconds]

 

因为本人比较执着,终于找到了有用的文章,试着根据里边讲到的去指定DNS解析规范为IPV4,问题完美解决掉了,最终设置如下:

curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );// 解决DNS解析不受超时设置控制
curl_setopt($curl, CURLOPT_TIMEOUT, 3); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2); // 设置连接超时限制防止死循环

 


很感激这位博主的聪明才智,我仅是一位搬运工,为了更多遇到相同问题的人能准确地定位问题,并解决掉问题。

参考文章:https://phpjieshuo.com/archives/124/

 

PS:如果有大神知道造成这个问题的原因,并给予回复的话,感恩?

 

转载于:https://www.cnblogs.com/wupeiky/p/11514592.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值