【发布时间】:2013-02-11 14:09:21
【问题描述】:
我正在获取一个 URL,但它在某些国家/地区被过滤掉了。我正在寻找一种方法来配置 cURL 以使用客户端代理。
我的意思是已经在浏览器或连接中设置的代理。
赞赏任何其他可以解决问题并确定网站是否被过滤的解决方案。
【问题讨论】:
我正在获取一个 URL,但它在某些国家/地区被过滤掉了。我正在寻找一种方法来配置 cURL 以使用客户端代理。
我的意思是已经在浏览器或连接中设置的代理。
赞赏任何其他可以解决问题并确定网站是否被过滤的解决方案。
【问题讨论】:
对于 libcurl,使用 CURLOPT_PROXY:
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTPROXY
对于 curl 命令行工具,使用选项 --proxy host:port。
库和命令行工具都尊重环境变量 http_proxy、ftp_proxy、all_proxy,所以这是另一种选择。
编辑: 如果您想在服务器上使用客户端的代理 - 这将无法可靠地工作。 首先,您需要通过 javascript 确定客户端的代理设置——这可能有效。 其次,您需要使用该代理在服务器上发出请求 - 这肯定不会可靠地工作,因为客户端的代理可能位于本地网络中(无法从外部访问),需要身份验证等。
一个选项是通过 JavaScript (AJAX) 发出客户端请求并验证结果 - 这是一种有点可疑的方法,因为您正在从客户端的计算机向可能被阻止(非法?)的站点发出请求。最好不要那样做。
【讨论】: