我正在获取一个 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) 发出客户端请求并验证结果 - 这是一种有点可疑的方法,因为您正在从客户端的计算机向可能被阻止的(非法?)站点发出请求。最好不要那样做。