【ipv6惹的祸】curl 超时

摘要:
我无意中发现,最近我总能在公司的日志平台上看到很多关于phpcurl的错误消息,操作时间为0毫秒,接收到0字节中的0字节,恢复时间为5514毫秒。这很奇怪。它在过去是很好的,而且使用wget获取速度也很慢。从以下结果中,我们可以看到dns解析速度慢wgetwww.domain.com-2016

偶然发现

最近在公司日志平台 总是可以看到很多关于php curl的错误信息


Operation timed out after 0 milliseconds with 0 out of 0 bytes received

Resolving timed out after 5514 milliseconds


非常奇怪,以前都是好的,使用wget获取也非常慢,从下面的结果可以看出来 dns解析比较慢


wget www.domain.com
--2016-11-19 22:17:30--  http://www.domain.com/
Resolving www.domain.com... # 此处停滞约 5 秒
xxx.xxx.xxx.xxx
Connecting to www.domain.com|xxx.xxx.xxx.xxx|:80... connected.
HTTP request sent, awaiting response... 200 OK


然后我就在本地环境 使用上面同样的命令 又非常快,这样就很郁闷了。然后就在一个群里询问,有人说 是IPV6导致的,我记得我们服务器没有开启IPV6的,然后就为了老大,没想到他开启了,然后就出错了

解决办法

对于 PHP curl 来讲,只需要加上下面一句即可解决延迟问题(指定使用IPV4):

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );




原文地址:【ipv6惹的祸】curl 超时
标签:curl   ip   ipv6   Resolving   timed   out   

智能推荐

免责声明:文章转载自《【ipv6惹的祸】curl 超时》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#泛型接口前端缓存最佳实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux使用curl发送http get与post请求

1. curl发送get请求curl http://11.120.12.89:6666/sengMsg?phone=18790987654&name=lily&msg=aaa 注意:有多个参数时需要把&转义一下,否则获取不到之后参数会报错 2. curl发送post请求post请求类型application/x-www-form-...

curl 交叉编译 支持http2和openssl

touch run.sh chmod 755 run.sh mkdir build cd build ../run.sh run.sh #!/bin/bash #cd /build ../configure --host=aarch64-linux-android --with-ssl="/home/soft/openssl-1.1.1b/buil...

为什么 netstat 对某些服务只显示了 tcp6 监听端口

最近偶尔发现一个比较奇怪的现象,netstat 查看监听的服务端口时,却只显示了 tcp6 的监控, 但是服务明明是可以通过 tcp4 的 ipv4 地址访问的,那为什么没有显示 tcp4 的监听呢? 以 sshd 监听的 22 端口为例: # netstat -tlnp | grep :22 tcp 0 0 0.0.0.0:22...

解决curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to raw.githubusercontent.com:443 错误

报错命令 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash   报错状态 解决办法 原因是没有安装git,用以下命令安装git,然后再执行上面的命令 sudo apt-get install git 参考https://www.pianshe...

关于socket通信bind()返回值错误:10049

前几天偶尔收到一个朋友的求救,要编写一个IPV6的socket编程 开始以为这个问题很容易,因为socket已经兼容IPV4和IPV6的,改下那几个接口就可以了 然后....被卡住了.... 修改了参数为IPV6的参数以后,在bind的时候始终包10049错误. 按照MSDN的说法,10049的意思表示找不到那个IP. 但是我服务器端bind监听的sock...

Elastic Stack之Logstash进阶

Elastic Stack之Logstash进阶 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.使用GeoLite2和logstash 过滤插件的geoip案例 1>.GeoLite2概述 GeoLite2数据库是免费的IP地理定位数据库,与MaxMind的GeoIP2数据库相当,但不太准确。GeoLite2国家和城市数据库在...