【发布时间】:2018-01-14 18:51:06
【问题描述】:
我正在尝试使用 Luminati.oi 代理服务来抓取 URL,但我的服务器连接到代理并使用 CURLOPT_PROXY 功能似乎存在问题。
$curl = curl_init('http://lumtest.com/myip.json');
curl_setopt($curl, CURLOPT_PROXY, 'http://example:24000');
curl_exec($curl);
$result = curl_exec($curl); echo $result;
echo 'Curl error: ' . curl_error($curl);
curl_close($curl);
我没有从目标 URL 得到任何响应,curl_error() 函数返回 Curl error: Failed to connect to exmaple port 24000: Connection refused 关于如何编写 Luminati.io 提供的 CURL 有几种变体,但似乎都不起作用。
如果我删除 CURLOPT_PROXY 选项并直接从我的服务器发送请求而没有代理,它工作得很好,我从目标 URL 得到正确的响应。因此,我的服务器似乎可以使用 CURL,但不能使用代理功能。
使用桌面代理管理器时,luminati.io 代理服务器的 URL 和端口似乎可以正常工作。所以代理服务似乎工作正常,目标 URL 很好,我的服务器可以毫无问题地使用 CURL,所以问题似乎与 CURLOPT_PROXY 不工作有关。 Luminati.io 的好人认为我的 Apache Linux 服务器中存在某种类型的服务器设置或防火墙,不允许发生代理连接,我在任何地方都找不到这个设置,而且 Hostgator 在被问到时似乎无用且无动于衷。
所以我希望有人可以提供一些关于 CURLOPT_PROXY 函数为什么不起作用的更深入的见解。
【问题讨论】:
标签: php apache curl proxy proxy-server