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エラーが出るので注意。
関連記事
-
-
AlmaLinux8&PHP8系の環境にComposerをインストールする方法
AlmaLinux8&PHP8系の環境にComposerをインストールし ...
-
-
PHPMailerを使ってメールをSMTP送信する方法(Composer無し)
PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...
-
-
PHPで複数の変数に同じ値を代入する方法(多重代入 / 一括代入 / 同時代入)
PHPのソースコード上に「$a = $b = $c = 12;」みたいな見たこと ...
-
-
PHPで配列内から重複を削除する
やりたかった事はそのまま、配列内から重複を削除したかった。 ■参考サイト htt ...
-
-
PHPにてサイトにPayPay決済システム及び決済キャンセル機能を実装する方法
ここのところクレジットカード決済関連のメモを書いているが、他の決済方法についても ...