Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in PHP, um die echte IP des echten Clients zu erhalten

Detaillierte Einführung in PHP, um die echte IP des echten Clients zu erhalten

黄舟
黄舟Original
2017-03-08 09:09:091262Durchsuche

In diesem Artikel wird hauptsächlich die Methode von PHP vorgestellt, um die echte IP des echten Clients (REMOTE_ADDR, HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR) zu erhalten, die einen guten Referenzwert hat. Werfen wir einen Blick mit dem Editor unten

REMOTE_ADDR ist die IP, wenn Ihr Client mit Ihrem Server „Handshakes“ 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']; //Accessor (kann ein Benutzer sein, kann ein Proxy sein) IP

$_SERVER['HTTP_CLIENT_IP']; //Proxy-Seite (kann vorhanden sein, kann gefälscht werden)

$_SERVER['HTTP_X_FORWARDED_FOR'] / /Welche IP der Benutzer als Proxy verwendet (kann existieren oder gefälscht werden)

Der Unterschied zwischen den drei Werten ist wie folgt:

1. Wenn kein Proxyserver verwendet wird:

REMOTE_ADDR = Ihre IP

HTTP_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 = Proxy-Server-IP

HTTP_X_FORWARDED_FOR = Ihre tatsächliche IP-Adresse Bei der Weiterleitung über mehrere Proxy-Server ä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. Beim Durchlaufen mehrerer Proxyserver ä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-IP

HTTP_VIA = Kein Wert Oder nicht angezeigt

HTTP_X_FORWARDED_FOR = Kein Wert oder 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.

//获取用户IP
$ip = '';
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_FROM', 'REMOTE_ADDR') as $v) {
  if (isset($_SERVER[$v])) {
    if (! preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $_SERVER[$v])) {
        continue;
  } 
     $ip = $_SERVER[$v];
  }
}
uset($ip,$v);

Das Obige ist die detaillierte Einführung von PHP, um die echte IP des echten Clients zu erhalten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


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