cURL over http / socks proxy with authentication

时间:2011-10-29 21:46:12

标签: php authentication curl proxy

我在使用身份验证的代理上抓取数据时遇到问题。代理在线,它是私有的,它可以从浏览器中快速运行。

然而,代理需要身份验证,我只是想不出为什么这个简单的脚本不起作用?!

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://automation.whatismyip.com/n09230945.asp");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_PROXY, "proxyIP:proxyPORT");
    curl_setopt($ch, CURLOPT_PROXYUSERPWD,"username:password");

    $result = curl_exec($ch); 
    curl_close($ch); 
    return $result;
?>

我试图用任何有效值设置CURLOPT_HTTPAUTH并且它是相同的..有什么建议吗?

3 个答案:

答案 0 :(得分:1)

尝试设置:

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 

答案 1 :(得分:1)

您需要使用CURLOPT_PROXYTYPE告诉curl您正在使用哪种类型的代理,否则它将采用默认类型HTTP ...

答案 2 :(得分:0)

尝试

curl_setopt($ch, CURLOPT_PROXY, 'proxyIP');
curl_setopt($ch, CURLOPT_PROXYPORT, 'proxyPORT');

而非

curl_setopt($ch, CURLOPT_PROXY, "proxyIP:proxyPORT");