PHP die meisten korrekte / sichere Weg, um Reale Benutzer-IP-Adresse in 2017

Was ist der Genaueste Weg, um Nutzer-IP-Adresse in 2017 über PHP?

Ich habe gelesen, viele Fragen und Antworten darüber, aber die meisten Antworten sind alte und kommentiert von Benutzern, die diese Möglichkeiten zu unsicher sind.

Nehmen wir zum Beispiel einen Blick auf diese Frage (2011): Wie bekomme ich die client-IP-Adresse in PHP?

Tim Kennedy Antwort enthält eine Empfehlung, etwas zu verwenden, wie:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}

Aber ich habe viel gelesen, ich habe gesehen, dass die Verwendung von X_FORWARDED_FOR unsicher ist, wie der Kommentar unten highlights:

NICHT mit dem obigen code, es sei denn, Sie wissen GENAU, was Sie tut! Ich habe
gesehen MASSIVE Sicherheitslücken aufgrund dieser. Die Kunden können die
X-Forwarded-For oder die Client-IP-header zu jedem beliebigen Wert
will. Es sei denn, Sie haben einen vertrauenswürdigen reverse-proxy, Sie sollten keine
solche Werte.

Da ich nicht GENAU weiß, was es tut, ich will nicht das Risiko auf sich nehmen. Er sagte, es sei unsicher, aber nicht bieten eine sichere Methode, um Nutzer-IP-Adresse.

Dann habe ich versucht die einfache $_SERVER['REMOTE_ADDR'];, aber dieser liefert die falsche IP. Ich habe getestet, und meine echte IP folgt diesem Muster: 78.57.xxx.xxx, aber ich bekomme eine IP-Adresse wie: 81.7.xxx.xxx

Also, habt Ihr irgendwelche Ideen?

  • 81.7.xxx.xxx ... seine eigene Öffentliche Ip ... und 78.57.xxx.xxx Ihr Eure pc ip.
  • google.co.in/...
  • also ja, meine IP ist wie 78.57...., aber $_SERVER['REMOTE_ADDR']; resturns mich wie 81.7.....
  • $_SERVER['REMOTE_HOST'] .... versuchen Sie, diese ... was Sie bekommen
  • Vor der Verwendung von IPs für alles, was Sie sollten wirklich wissen, was Sie sind und wie IP-Netzwerke arbeiten. IPs sind nur ein Implementierungsdetail von Daten-transport-Mechanismus (TCP/IP). Es muss nicht unbedingt geben Ihnen nützliche Informationen über einige Details, wie die Daten der aktuellen Anfrage wurde transportiert auf Ihren server. Nur wenn Sie verstehen, dass sollten Sie prüfen, unter Verwendung IPs für andere Zwecke.
  • Gut würden Sie bitten, das Gerät selbst und hoffentlich wird es Ihnen sagen.
  • Sorry, die Nachrichten brechen, um Sie. Nichts hat sich geändert, die das Internet bewusst ist. Jedoch können Sie immer verwenden einige algorithmen, um festzustellen, ob der Benutzer wird liegend oder hinter einem Proxy. z.B. Gebietsschema Stimmen nicht überein

InformationsquelleAutor Infinity | 2017-05-20
Schreibe einen Kommentar