Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in die Methode zum Erhalten der echten IP des echten Clients in PHP

Einführung in die Methode zum Erhalten der echten IP des echten Clients in PHP

高洛峰
高洛峰Original
2017-03-22 17:19:411234Durchsuche

REMOTE_ADDR ist die IP, wenn Ihr Client mit Ihrem Server einen „Handshake“ 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)

Der Unterschied zwischen den drei Werten ist wie folgt:

1 Wenn kein Proxyserver verwendet wird:

REMOTE_ADDR = Ihre IP

HTTP_VIA = Kein Wert oder 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 echte IP. 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. Die Situation bei der Verwendung gewöhnlicher anonymer Proxyserver: Anonyme Proxys

REMOTE_ADDR = Letzte Proxyserver-IP

HTTP_VIA = Proxyserver-IP

HTTP_X_FORWARDED_FOR = Proxyserver-IP: Bei der Weiterleitung über mehrere 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 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.

//获取用户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 der detaillierte Inhalt vonEinführung in die Methode zum Erhalten der echten IP des echten Clients in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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