Heim > Artikel > Backend-Entwicklung > Wie erhalte ich die echte Besucher-IP-Adresse hinter Proxys?
Echte Besucher-IPs hinter Proxys abrufen
In Fällen, in denen Besucher Proxys verwenden, ist dies bei der Standard-PHP-Methode $_SERVER['REMOTE_ADDR'] möglicherweise nicht der Fall Geben Sie die tatsächliche IP-Adresse des Besuchers an. Um dieses Problem zu beheben, sollten Sie den folgenden PHP-Code verwenden:
<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>
Dieser Code sucht nach CloudFlare-Netzwerken und passt die IP-Adresse entsprechend an. Anschließend werden HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR und REMOTE_ADDR in dieser Reihenfolge untersucht und IPs mit gültigen Formaten priorisiert. Durch die Implementierung dieses Codes können Sie die echte IP-Adresse des Besuchers erhalten, selbst wenn dieser sich hinter einem Proxy befindet.
Das obige ist der detaillierte Inhalt vonWie erhalte ich die echte Besucher-IP-Adresse hinter Proxys?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!