Heim > Artikel > Backend-Entwicklung > Wie identifiziere ich die wahre IP-Adresse hinter Proxyservern?
Identifizierung der wahren IP-Adresse hinter Proxyservern
Abrufen der IP-Adresse eines Besuchers mit Standard-PHP-Methoden wie $_SERVER['REMOTE_ADDR'] liefert möglicherweise keine genauen Informationen, wenn der Besucher über einen Proxyserver auf Ihre Website zugreift.
Um dieses Problem zu beheben, sollten Sie den folgenden PHP-Code verwenden:
<code class="php">function getUserIP() { // Obtain the IP address of the visitor behind CloudFlare 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']; $ip = null; 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 IP address [Ex: 177.87.193.134]</code>
Diese Funktion prüft zunächst, ob die Besucher nutzt CloudFlare, einen beliebten Proxy-Dienst. Wenn ja, ruft es die echte IP-Adresse mithilfe des HTTP_CF_CONNECTING_IP-Headers ab.
Als nächstes werden drei potenzielle IP-Quellen berücksichtigt: HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR und REMOTE_ADDR. Es validiert jede IP-Adresse und wählt die zuverlässigste aus.
Mit diesem Ansatz können Sie effektiv die tatsächliche IP-Adresse Ihrer Besucher ermitteln, selbst wenn diese sich hinter Proxyservern befinden.
Das obige ist der detaillierte Inhalt vonWie identifiziere ich die wahre IP-Adresse hinter Proxyservern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!