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

PHP erhält die IP des Clients

高洛峰
Freigeben: 2016-10-20 13:55:54
Original
911 Leute haben es durchsucht

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;
}
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage