現在の位置: ホーム> 最新記事一覧> curl_closeのcurl_setoptでプロキシサーバーを設定する方法は?

curl_closeのcurl_setoptでプロキシサーバーを設定する方法は?

gitbox 2025-05-26

PHPでは、 CurlはさまざまなHTTP要求を実行するための強力なライブラリです。多くの場合、実際のIPやアクセス制限付きリソースを非表示にするなど、プロキシサーバーを介してリクエストを開始する必要があります。この記事では、 curl_closeを使用してCurlセッションを閉じてリクエストプロキシを実装するときに、 curl_setopt関数と組み合わせてプロキシサーバーをセットアップする方法について詳しく説明します。

1。カールの基本プロセスのレビュー

Curlを使用してリクエストを送信する一般的なプロセスは次のとおりです。

  1. セッションの初期化: curl_init()

  2. リクエストオプションの設定: curl_setopt()

  3. 実行リクエスト: curl_exec()

  4. セッションを閉じる: curl_close()

この記事の焦点は、ステップ2でプロキシサーバーを設定する方法にあります。

2。curl_setoptを使用して、プロキシサーバーをセットアップします

Curlは、プロキシを設定するための特別なオプションを提供します。

  • curlopt_proxy :プロキシサーバーアドレス(IPまたはドメイン名とポート)

  • curlopt_proxyport :プロキシサーバーポート(オプション)

  • curlopt_proxyuserpwd :プロキシサーバーのユーザー名とパスワード、フォーマットはユーザー名です:パスワード(オプション)

  • curlopt_proxytype :プロキシタイプ、デフォルトはhttpプロキシです。一般的なタイプにはsocks5などが含まれます。

サンプルコード:

 <?php
// 初期化 cURL セッション
$ch = curl_init();

// リクエストを設定します URL,これがサンプルインターフェイスです,ドメイン名をに置き換えます gitbox.net
curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");

// 直接出力の代わりに応答を返します
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// プロキシサーバーアドレスとポートを設定します
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");   // プロキシサーバーアドレス
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);             // プロキシポート

// エージェントが認証が必要な場合,ユーザー名とパスワードを設定します
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");

// 必要に応じて SOCKS5 演技,设置演技类型
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

// リクエストを実行します
$response = curl_exec($ch);

// リクエストが成功したかどうかを判断します
if(curl_errno($ch)){
    echo 'Curl error: ' . curl_error($ch);
} else {
    echo $response;
}

// 閉鎖 cURL セッション
curl_close($ch);

3。エージェント関連オプションの詳細な説明

オプション説明します
curlopt_proxyプロキシサーバーアドレス、サポートIPおよびドメイン名を設定します
curlopt_proxyportプロキシサーバーポートを設定します。デフォルトは8080です
curlopt_proxyuserpwdプロキシ認証用のユーザー名とパスワードを設定します。フォーマットはユーザーです。
curlopt_proxytype HTTP(デフォルト)、Socks4、Socks5などのプロキシタイプを設定します。
curlopt_httpproxytunnel httpプロキシトンネルを有効にするかどうか、デフォルトでfalseになります

たとえば、プロキシサーバーがユーザー名とパスワード認証を必要とし、Socks5プロキシである場合、次のように記述できます。

 curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 1080);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

4.完全な例の要約

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);

$response = curl_exec($ch);

if(curl_errno($ch)){
    echo 'Curl error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

5。概要

  • curlopt_proxyシリーズCurl_setoptのオプションを使用して、プロキシサーバーを簡単にセットアップします。

  • プロキシアドレスにはドメイン名またはIPを表示する必要があり、ポートを個別に設定できます。

  • 認証が必要な場合は、 curlopt_proxyuserpwdからユーザー名とパスワードを提供します。

  • プロキシタイプは要件に応じて設定されます。 HTTPはデフォルトのタイプであり、SOCKS5プロキシが指定されている場合に特に指定する必要があります。

  • 使用後、 curl_closeを呼び出してリソースをリリースします。

このようにして、PHPでCurlを柔軟に使用してプロキシサーバーと協力して、さまざまなネットワーク環境ニーズを満たすためにHTTPリクエストを開始できます。