AWS で PPTP VPN サーバーをセットアップしましたが、すべてが完全に機能しています。www.getip.com などの VPN に接続すると、VPN サーバーの IP アドレスが表示されます。
ここまでは順調ですね...
同じサーバーに Apache サーバーをインストールし、PHP スクリプトを実行して自分の IP アドレスを取得しました。
$ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
VPN に接続しているかどうかに関係なく、このコードにはローカル IP が表示されます。私はワニスや同様のキャッシュを使用していません。
これが事実である理由は何ですか?- $_SERVER 変数は PHP セッションに保存されていますか?
よろしくお願いいたします。
[更新] 問題は、VPN サーバーと PHP スクリプトが同じサーバー上にあるという事実に間違いなく関連しています。スクリプトを別のサーバーに置くと、すべてが期待どおりに機能します。VPN に接続されている場合、サーバーのパブリック IP (同時に VPN サーバーでもある) が表示されることを期待しています。