Heim > Backend-Entwicklung > PHP-Tutorial > So erhalten Sie die echte IP-Adresse des Clients in PHP

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

不言
Freigeben: 2023-04-02 19:42:02
Original
62146 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode zum Erhalten der echten IP-Adresse des Clients vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen Empfohlenes Handbuch

:
php vollständiges Handbuch zum Selbststudium php verfügt über vier Methoden, um die Client-IP-Adresse zu erhalten. Die fünf Methoden sind

REMOTE_ADDR
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
HTTP_VIA
Nach dem Login kopieren

REMOTE_ADDR ist die IP, wenn Ihr Client einen „Handshake“ mit Ihrem Server durchführt. Wenn ein „anonymer Proxy“ verwendet wird, zeigt REMOTE_ADDR die IP des Proxyservers an. HTTP_CLIENT_IP ist der vom Proxyserver gesendete HTTP-Header. Wenn es sich um einen „superanonymen Proxy“ handelt, wird der Wert „none“ zurückgegeben. Ebenso wird REMOTE_ADDR durch die IP dieses Proxyservers ersetzt.

$_SERVER['REMOTE_ADDR']; //Zugriffsende (möglicherweise Benutzer, möglicherweise Proxy) IP

$_SERVER['HTTP_CLIENT_IP']; //Proxy-Ende ( Möglicherweise vorhanden und kann gefälscht werden)

$_SERVER['HTTP_X_FORWARDED_FOR']; //Welche IP der Benutzer als Proxy verwendet (kann vorhanden sein und kann auch gefälscht werden)

Empfehlung für einen verwandten Artikel:

1.So erhalten Sie die IP-Adresse des Benutzers in PHP
2.Wie erhalte ich die IP-Adresse des Clients in PHP?
Verwandte Videoempfehlungen:
1.Dugu Jiujian (4)_PHP-Video-Tutorial

Drei Der Wert Der Unterschied ist wie folgt:

1. Wenn kein Proxyserver verwendet wird:

REMOTE_ADDR = Ihre IPHTTP_VIA = Kein Wert oder wird nicht angezeigt

HTTP_X_FORWARDED_FOR = Kein Wert oder nicht angezeigt



2. Bei Verwendung transparenter Proxyserver: Transparente Proxys

REMOTE_ADDR = Letzte Proxyserver-IP HTTP_VIA = Proxyserver IP

HTTP_X_FORWARDED_FOR = Ihre echte IP. Beim Durchlaufen mehrerer Proxyserver ähnelt dieser Wert dem folgenden: 203.98.182.163, 203.98.182.163, 203.129.72.215.


Diese Art von Proxyserver leitet Ihre Informationen immer noch an die Person weiter, die Sie besuchen, und kann nicht den Zweck erreichen, Ihre wahre Identität zu verbergen.

3. Bei Verwendung gewöhnlicher anonymer Proxyserver: Anonyme Proxys

REMOTE_ADDR = Letzte Proxyserver-IP HTTP_VIA = Proxyserver-IP

HTTP_X_FORWARDED_FOR = Proxyserver IP, wenn mehrere Proxyserver durchlaufen werden, ähnelt dieser Wert dem folgenden: 203.98.182.163, 203.98.182.163, 203.129.72.215.


Verbergen Sie Ihre echte IP, aber zeigen Sie Ihren Besuchern, dass Sie einen Proxyserver verwenden, um auf sie zuzugreifen.

4. Die Verwendung betrügerischer Proxyserver: Verzerrung von Proxys

REMOTE_ADDR = Proxyserver-IP HTTP_VIA = Proxyserver-IP

HTTP_X_FORWARDED_FOR = zufällige IP, Beim Durchlaufen mehrerer Proxyserver ähnelt dieser Wert dem folgenden: 203.98.182.163, 203.98.182.163, 203.129.72.215.


Sagen Sie dem Besucher, dass Sie einen Proxyserver verwenden, erfinden Sie jedoch eine gefälschte zufällige IP anstelle Ihrer echten IP, um ihn auszutricksen.

5. Bei Verwendung von Proxyservern mit hoher Anonymität: Proxys mit hoher Anonymität (Elite-Proxys)

REMOTE_ADDR = Proxyserver-IPHTTP_VIA = Kein Wert oder wird nicht angezeigt

HTTP_X_FORWARDED_FOR = Kein Wert oder wird nicht angezeigt. Beim Durchlaufen mehrerer Proxyserver ähnelt der Wert dem folgenden: 203.98.182.163, 203.98.182.163, 203.129.72.215.


Ersetzt alle Ihre Informationen vollständig durch die Informationen des Proxyservers, so wie Sie diesen Proxyserver verwenden, um direkt auf das Objekt zuzugreifen.

6. Beispiel für den Erhalt der echten IP-Adresse des Clients:

function get_real_ip()
{
    $ip=FALSE;
    //客户端IP 或 NONE 
    if(!empty($_SERVER["HTTP_CLIENT_IP"])){
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    }
    //多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
        if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
        for ($i = 0; $i < count($ips); $i++) {
            if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
                $ip = $ips[$i];
                break;
            }
        }
    }
    //客户端IP 或 (最后一个)代理服务器 IP 
    return ($ip ? $ip : $_SERVER[&#39;REMOTE_ADDR&#39;]);
}
Nach dem Login kopieren
Das Obige ist der gesamte Inhalt dieses Artikels Weitere verwandte Inhalte Bitte beachten Sie die chinesische PHP-Website!

Verwandte Empfehlungen:

PHP-Code zum Komprimieren und Dekomprimieren von Dateien


Verwenden Sie die PHP-Klassenbibliothek PHPqrCode, um Generieren Sie 2 QR-Code

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

Verwandte Etiketten:
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