欢迎大家访问博主的博客新家:IT博客达人网 (http://www.blogdaren.com)[耶]

php curl报错:Couldn't resolve host "XXXXXX" 解决方法

manon 2016-6-14 19:22 PHP 抢沙发 3501人打酱油 打开侧边栏| 关闭侧边栏

问题背景:

PHP脚本里使用curl系列的函数GET某资源地址, 结果报错:Couldn't resolve host "ip.taobao.com"

PHP代码:


    public function actionDemo()
    {    
        $url = "http://ip.taobao.com";
        $rs = Helper_Tool::curlGet($url);     
        var_dump($rs);                                                                                                                                                        
    }  


问题原因:

1.  问题最终出在 ipv6 上

2.  附:博主自身已经校验确保主机的DNS 以及 hosts均无问题

3.  附:另外使用如下代码使用DNS缓存或者禁用ipv6也无济于事:

curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false );

curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 2 );

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );


解决方法:

系统层面禁用 ipv6 模块即可

禁用ipv6:

#vi /etc/modprobe.d/dist.conf
添加下面两行内容
alias net-pf-10 off
alias ipv6 off
保存退出,并且重新启动系统

验证ipv6模块是否加载
#lsmod|grep ipv6

开机不启动
#chkconfig ip6tables off

正文部分到此结束

版权声明:除非注明,本文由( manon )原创,转载请保留文章出处

本文链接:php curl报错:Couldn't resolve host "XXXXXX" 解决方法

继续浏览:木有标签

【很管用】忘记mysql root密码解决办法
【原创】qeephp优化-9:解决DB直连查询时因字符串变量引起的数据库查询失败的BUG

发表评论

看看右边的头像对不对?→_→