PHPでプロキシ経由で他サーバーに接続する方法(file_get_contents / curlの2パターン)
2024/02/25
PHPでfile_get_contentsやcurlで他サーバに接続する際に自サーバのIPは隠したかった。かといって偽装するのも難しいとのこと。ただ、プロキシサーバーを経由することで対応可能。以下に対応方法をメモ。
file_get_contentsの場合
$url = 'http://hogehoge.com';
$option = array(
'http' => array(
'proxy' => 'tcp://プロキシIP:プロキシポート番号',
'request_fulluri' => true,
),
);
$proxy = stream_context_create($option);
$result = file_get_contents($url, false, $proxy);
curlの場合
$url = 'http://hogehoge.com'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, 'http://プロキシIP':'プロキシポート番号'); $result = curl_exec($ch);
その他
「file_get_contents使用」「phpのエラー表示がON」「プロキシサーバでログイン認証の必要がある」の3つのケースが重なった場合にwarningエラーが出るので注意。
関連記事
-
-
CodeIgniter4 & jQueryを用いて同一サイト内でajax通信する方法
CodeIgniter4.4.4 & jQueryを用いて同一サイト内で ...
-
-
Composer自体のインストールとmonolog及びTwigをComposer経由でインストールする方法
「Composerで○○をインストール」というのをよく見かけるがComposer ...
-
-
PHPを用いてフォームからzipファイルをアップロードしサーバ上で解凍(展開)させる方法
formからzipファイルをアップロードしサーバ上で解凍(展開)するという一連の ...
-
-
CSVファイルを使って郵便番号から住所を抽出する
■ソース <? error_reporting(E_ALL & ~ ...
-
-
PHPにて指定した期間内の合計日数を出力する方法
PHPにて開始日と終了日をユーザが入力すると、その期間内の合計日数を出力させたい ...