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

PHP erhält die IP des Clients

高洛峰
高洛峰Original
2016-10-20 13:55:54921Durchsuche

1.REMOTE_ADDR: Die IP-Adresse des Computers des Benutzers, der die aktuelle Seite durchsucht
2.HTTP_X_FORWARDED_FOR: Das Gateway des Computers des Benutzers, der die aktuelle Seite durchsucht
3.HTTP_CLIENT_IP: IP des Clients

Verwenden Sie in PHP $_SERVER["REMOTE_ADDR"], 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 Proxys Server.

Zu beachten ist außerdem, dass der mit $_SERVER["HTTP_X_FORWARDED_FOR"] erhaltene Wert leer ist, wenn der Client nicht über einen Proxyserver zugreift.

/**
 * 获取客户端IP
 * @return string
 */
function get_client_ip()
{
    $realip = "";
    if ($_SERVER['HTTP_X_FORWARDED_FOR'] && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        $realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else if ($_SERVER['HTTP_CLIENT_IP']  && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP']))
    {
        $realip = $_SERVER['HTTP_CLIENT_IP'];
    }
    else if($_SERVER['REMOTE_ADDR'] && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP']))
    {
        $realip = $_SERVER['REMOTE_ADDR'];
    }

    return $realip;
}


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-OptimierungNächster Artikel:PHP-Optimierung