Heim >Backend-Entwicklung >PHP-Tutorial >PHP erhält die echte IP des Clients

PHP erhält die echte IP des Clients

巴扎黑
巴扎黑Original
2016-11-23 13:50:40970Durchsuche

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( $_ENV, EXTR_SKIP);
}
Unter anderem ist REMOTE_ADDR leichter zu verstehen; was HTTP_x_FORWARDED_FOR betrifft, habe ich einige Informationen gefunden und Folgendes gesagt:
In PHP wird $_SERVER["REMOTE_ADDR"] verwendet, um die IP-Adresse des Clients abzurufen. Wenn der Client jedoch einen Proxyserver für den Zugriff verwendet, wird die IP-Adresse des Proxyservers und nicht die tatsächliche IP-Adresse des Clients abgerufen. 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 tatsächliche IP des Clients zu lesen. Einige der von dieser Methode gelesenen IPs sind immer noch die IP des Proxyservers.

Was HTTP_CLIENT_IP betrifft, hieß es in einem Beitrag
'HTTP_CLIENT_IP' ist die IP des Benutzers, 'HTTP_X_FORWARDED_FOR' ist die IP des Proxys
Diese IP-Header-Nachrichten sind möglicherweise nicht verfügbar (aufgrund unterschiedlicher Browser und verschiedener Netzwerkgeräte). sendet möglicherweise unterschiedliche IP-Header-Nachrichten. Daher versucht PHP, jede IP-Header-Nachricht zu beurteilen, und wenn es eine gibt, nimmt sie eine davon

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
Vorheriger Artikel:PHP-Objekte und ReferenzenNächster Artikel:PHP-Objekte und Referenzen