cURL请求已被阻止

时间:2015-05-26 18:23:59

标签: php curl

我试图在PHP网站上运行一个简单的cURL函数,但由于某种原因,该请求不起作用。

我已经在不同的服务器上测试了代码并且工作得很好。 两个站点使用相同的cURL版本(7.19.7),相同的cURL设置。两者都使用APACHE 2.2。

该功能运行的站点使用PHP 5.6

函数不起作用的站点使用PHP 5.5.23

但我真的不认为这是PHP版本问题,而是服务器问题。 但是,我不知道该寻找什么,调试它,看看为什么它不起作用。我只是坚持这个。

我的代码是:

function curlGet($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 25);
    $result = curl_exec($curl);
    if ( $result === false ){
        return 'COULD NOT CONNECT';
    }else{
        return $result;
    }
}
echo curlGet('http://www.google.com');

1 个答案:

答案 0 :(得分:1)

php5-curl的一些发行版(如Debian6 iirc)带有默认的useragent字符串,有些则没有。我想在目标服务器上阻止了useragentstring-less请求。许多网站出于某种原因这样做(我不知道为什么)。如果这是你的问题,解决方案是CURLOPT_USERAGENT ..无论如何,记录来自两个客户端的整个封面,找出请求中的差异,并将它们排除在外。 (Fiddler Proxy非常适合这种情况。甚至允许使用https SSL / TLS通过假SSL证书进行MITM攻击:D)