サンプル・プログラムの実行例
サンプル・プログラム
isproxy.php | サンプル・プログラム本体。 |
pahooInputData.php | データ入力に関わる関数群。 使い方は「PHPでGET/POSTでフォームから値を受け取る」「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。 |
サンプル・プログラムの解説
プロキシサーバを経由すると、HTTP変数に特有の値が書き込まれる。
HTTP_CLIENT_IP
要求元IPアドレス。ただし偽装されていることがある。
- HTTP_VIA
- プロキシ名称、バージョンなど。
- HTTP_X_FORWARDED_FOR
- 要求元IPアドレス。ただし偽装されていることがある。
103: /**
104: * プロキシ経由かどうか調べる
105: * @return bool TRUE:プロキシ経由である
106: */
107: function isproxy() {
108: return (isset($_SERVER['HTTP_VIA']) || isset($_SERVER['CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']));
109: }
参考サイト
(この項おわり)
そこで今回は、プロキシ経由のアクセスかどうかを調べるプログラムを作ってみることにする。
(2022年6月27日)FastCGIで正常動作しない不具合を修正
(2022年5月23日)大幅改訂,PHP8対応