通常のプロキシ(例:72.41.132.22:3128
)cURLでうまく動作しますが、ユーザー名/パスでSOCKS 5プロキシを使用すると、ページ上に「[1」が表示されます。
SOCKY 5プロキシをcURLで使用する方法はありますか?
$proxy = "cagsan:[email protected]: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);
プロキシがSOCKS5プロキシであることをcURLに伝える必要があります。そうでない場合、cURLはHTTPプロキシであると想定します。
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
docs から:
CURLOPT_PROXYTYPE
CURLPROXY_HTTP(デフォルト)またはCURLPROXY_SOCKS5。
cURL 7.21.7以降では、CURLOPT_PROXY
およびSOCKSプロトコルを指定します。
curl_setopt($ch, CURLOPT_PROXY, 'socks5://bob:marley@localhost:12345');
libcurl documentation の詳細情報。
ホスト名(localhost?)を介して接続しようとしている場合、CURLPROXY_SOCKS5
、 あなたが試すことができます CURLPROXY_SOCKS5_HOSTNAME
。
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
以前のいくつかのPHP=バージョンでは、以下を行う必要があります。
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);