プロキシの使用にもかかわらず実際の訪問者の IP アドレスを取得する
訪問者の IP アドレスを取得するために一般的に使用される PHP コードは次のとおりです:
<code class="php"><?php echo $_SERVER['REMOTE_ADDR']; ?></code>
ただし、プロキシが動作している場合、この方法では真の IP を取得できません。この問題の解決策を求めて、別のアプローチを詳しく見てみましょう。
IP 決定用のカスタム PHP 関数
提供された PHP コードは、CloudFlare 接続を考慮した包括的なソリューションを提供します。およびその他のさまざまな要素:
<code class="php">function getUserIP() { // Handle CloudFlare connections if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; } $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if(filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif(filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } return $ip; } $user_ip = getUserIP();</code>
このコードは、IP アドレスを変数 $user_ip に割り当てます。これは、PHP スクリプト内で必要に応じて利用できます。
以上がプロキシが使用されている場合に実際の訪問者の IP アドレスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。