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エラーが出るので注意。
関連記事
-
-
PHPでCookie保存時にPartitioned属性を設定する方法
あるページをブラウザの開発者ツールで見た際に「cookie partitione ...
-
-
PHPで画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利
今までPHPで画像関連の処理を行う場合、リサイズの時のみsmart_resize ...
-
-
PHPのsetcookieで「Cannot modify」エラーの対応方法
PHPでsetcookieを使うと「Warning: Cannot modify ...
-
-
エラー処理を1ページにまとめる
できるだけまとめておいた方が効率よさそうなのでメモ。 メインのフォルダにlogs ...
-
-
DTIのVPSにCodeigniter3を導入する方法
DTIのVPSにPHPフレームワークのCodeigniter3系をインストールし ...