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エラーが出るので注意。
関連記事
-
-
Facebookのタイムラインを取得して表示する方法
Facebookのタイムラインを取得してきて、表示させたいという案件があった。 ...
-
-
PHPにてHTML / 画像ファイルをPDFファイル化する方法(mPDF)
PHPにてHTML / 画像ファイルをPDFファイル化したい。検索してみるもサー ...
-
-
PHPでCookie保存時にHttpOnly / Secure属性を設定する方法
あるシステムのセキュリティ対策としてCookie保存時にHttpOnly / S ...
-
-
PHPバージョンが古くjson_decodeが使えない際の対応方法(Services_JSON)
PHPのバージョンが古くてjson_decodeが使えないという状況があった。ま ...
-
-
PHPにてmicrotimeで秒数を測定した際「xxxxxE-5」のような値になる場合の対応方法
PHPで過去記事を参考の上、あるプログラムの処理にかかった時間を測定しようとした ...