プロキシの背後にある実際の訪問者の IP を取得する
訪問者がプロキシを使用する場合、標準の PHP メソッド $_SERVER['REMOTE_ADDR'] は使用できない場合があります実際の訪問者の IP アドレスを提供します。この問題に対処するには、次の PHP コードの利用を検討してください:
<code class="php">function getUserIP() { // Handle CloudFlare network 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(); echo $user_ip; // Output real visitor IP address</code>
このコードは、CloudFlare ネットワークをチェックし、それに応じて IP アドレスを調整します。次に、HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、REMOTE_ADDR をこの順序で検査し、有効な形式の IP を優先します。このコードを実装すると、訪問者がプロキシの背後にいる場合でも、実際の訪問者の IP アドレスを取得できます。
以上がプロキシの背後で実際の訪問者の IP アドレスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。