如何使用curl这样的SOCKS 5代理?(How to use a SOCKS 5 proxy w

2019-07-03 22:48发布

普通代理(例如: 72.41.132.22:3128 )与卷曲工作得很好,但是当我用SOCKS代理5使用用户名/密码,这给了我“[1”的页面上。

有没有办法使用SOCKY 5个代理与卷曲的方法吗?

$proxy = "cagsan:jw22wdw@108.61.25.223:34792";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);

Answer 1:

你需要告诉卷曲代理是一个SOCKS5代理,否则卷曲假定它是一个HTTP代理服务器:

curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

从文档 :

CURLOPT_PROXYTYPE

无论是CURLPROXY_HTTP(默认)或CURLPROXY_SOCKS5。



Answer 2:

因为卷曲7.21.7,您可以使用CURLOPT_PROXY并指定SOCKS协议:

curl_setopt($ch, CURLOPT_PROXY, 'socks5://bob:marley@localhost:12345');

更多信息将在libcurl的文档 。



Answer 3:

对于那些希望通过主机连接(本地主机?),并且它不与工作CURLPROXY_SOCKS5 ,你可以尝试CURLPROXY_SOCKS5_HOSTNAME

curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);

在一些早期的PHP版本,你将不得不这样做:

curl_setopt($ch, CURLOPT_PROXYTYPE, 7);


文章来源: How to use a SOCKS 5 proxy with cURL?