Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie die echte IP des Benutzer-Clients in PHP

So erhalten Sie die echte IP des Benutzer-Clients in PHP

怪我咯
怪我咯Original
2017-07-05 10:57:471109Durchsuche

Einige Analysen von Ideen zur Ermittlung der tatsächlichen IP des Kunden sind möglicherweise nicht korrekt, aber zumindest ist die Genauigkeit viel besser.

Der Code lautet wie folgt:

function GetIP(){ 
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) 
$ip = getenv("HTTP_CLIENT_IP"); 
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) 
$ip = getenv("REMOTE_ADDR"); 
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) 
$ip = $_SERVER['REMOTE_ADDR']; 
else 
$ip = "unknown"; 
return($ip); 
}

regist=off problem
if ($register_globals!=1) {
@extract($ _SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($ _POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
REMOTE_ADDR Unter ihnen ist es besser zu verstehen, dass das
php-Handbuch
besagt, dass es sich um eine vorgegebene Variable handelt. Was HTTP_x_FORWARDED_FOR betrifft, habe ich einige Informationen im Internet gefunden und gesagt: Verwenden Sie $_SERVER["REMOTE_ADDR"] in PHP, um es zu erhalten it Die IP-Adresse des Clients. Wenn der Client jedoch einen Proxyserver für den Zugriff verwendet, ist die erhaltene IP-Adresse die IP-Adresse des Proxyservers und nicht die tatsächliche IP-Adresse des Clients. Um die echte IP-Adresse des Clients über einen Proxyserver zu erhalten, lesen Sie sie mit $_SERVER["HTTP_X_FORWARDED_FOR"] aus. Es ist jedoch zu beachten, dass nicht jeder Proxyserver $_SERVER["HTTP_X_FORWARDED_FOR"] verwenden kann, um die echte IP des Clients zu lesen. Einige der von dieser Methode gelesenen IPs sind immer noch die IP des Proxyservers.

Was HTTP_CLIENT_IP betrifft, gibt es einen Beitrag, der besagt, dass
'HTTP_CLIENT_IP' die IP des Benutzers und 'HTTP_X_FORWARDED_FOR' die IP des Proxys ist
Diese IP-Header-Nachrichten sind möglicherweise nicht verfügbar (aufgrund unterschiedlicher Browser). Verschiedene Netzwerkgeräte können unterschiedliche IP-Header-Nachrichten senden. Daher versucht PHP, jede IP-Header-Nachricht zu beurteilen, und wenn es eine gibt, nimmt sie eine davon

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die echte IP des Benutzer-Clients in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn