Heim  >  Artikel  >  Backend-Entwicklung  >  So identifizieren Sie echte IP in PHP

So identifizieren Sie echte IP in PHP

(*-*)浩
(*-*)浩Original
2019-09-12 11:06:152117Durchsuche

Die Variablen, die zum Erhalten der Client-IP in PHP verwendet werden, sind:

So identifizieren Sie echte IP in PHP

$_SERVER['HTTP_CLIENT_IP'] Dies Der Header existiert, ist jedoch selten und nicht unbedingt von allen Servern implementiert. Der Kunde kann gefälscht sein. (Empfohlenes Lernen: PHP-Programmierung vom Einstieg bis zur Kompetenz)

$_SERVER['HTTP_X_FORWARDED_FOR'] hat eine Standarddefinition und wird zur Identifizierung der Client-IP-Adresse nach dem HTTP-Proxy verwendet. Das Format ist : clientip,proxy1,proxy2. Eine ausführliche Erklärung finden Sie unter http://zh.wikipedia.org/wiki/X-Forwarded-F.... Der Kunde kann gefälscht sein.

$_SERVER['REMOTE_ADDR'] ist die letzte IP, die Ihrem Server die Hand gibt. Es kann sich um den Proxyserver des Benutzers oder seinen eigenen Reverse-Proxy handeln. Der Client kann nicht gefälscht werden.

Parameter, die vom Kunden gefälscht werden können, müssen gefiltert und überprüft werden! Viele Leute denken, dass der Inhalt der Variablen $_SERVER vertrauenswürdig ist. Dies ist jedoch nicht der Fall.

Wenn Sie unbedingt die echte IP des Benutzers erhalten möchten

Wenn Anti-Crawler und Anti-Votes verwendet werden, vertrauen wir nichts, was der Kunde fälschen kann. Dies wird strikt eingehalten.

Es gibt kein CDN, Benutzer stellen eine direkte Verbindung zu unserem PHP-Server her

Verwenden Sie in diesem Fall die TCP-Layer-Handshake-IP, $_SERVER['REMOTE_ADDR']

Bei Verwendung von Nginx zum Erreichen des Lastausgleichs in einem selbst erstellten Cluster

In diesem Fall kann der PHP-Anwendungsserver nicht der Außenwelt ausgesetzt werden. Wir erhalten die echte IP in Nginx und Senden Sie es dann an den PHP-Server.

location /{
   proxy_set_header client-real-ip $remote_addr;
}

client-real-ip kann beliebig benannt werden. Wir leiten die IP des Nginx-Handshakes in der TCP-Schicht an PHP weiter.

Beim Abrufen der Quelle vom PHP-Server

CDN leitet die Handshake-IP des Clients weiter. Einzelheiten finden Sie in der CDN-Dokumentation.

Natürlich können wir das Geschäft, das eine strenge Überprüfung erfordert, auch an einen Domainnamen der zweiten Ebene binden und unseren eigenen Nginx-Server separat verwenden, um CDN zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo identifizieren Sie echte IP 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