Gibt es eine Möglichkeit, die IP-Adresse eines Clients zu erfassen, der über einen Proxy-Server mit Ihrer Website verbunden ist?
Das gesamte Setup ist ein internes LAN und über den Systemadministrator habe ich auch die Kontrolle über den Proxy-Rechner. Ich benutze PHP5 für die Website-Server-Seite.
Ich habe $_SERVER['REMOTE_ADDR']
in PHP versucht, aber diese Variable speichert nur die IP-Adresse des Proxy.
Irgendwelche Ideen?
Die Standardlösung (in PHP) ist:
%Vor%Aber wie die erste Antwort sagt, hängt alles davon ab, dass der Header tatsächlich gesetzt wird.
Das hängt vom Proxy ab. Einige Proxies fügen einen Header hinzu, der die ursprüngliche IP-Adresse angibt, den X-Forwarded-For-Header, aber da die meisten Unternehmen Proxys verwenden, um die interne Netzwerkstruktur zu verbergen, die selten ist. Wenn dies der Fall ist, wirst du es nicht leicht machen können.
Wenn Sie die Kontrolle über den Proxy haben, ist es an der Zeit, die Proxy-Dokumentation zu lesen, um zu sehen, wie dieser Header hinzugefügt wird.
X-Forwarded-For
ist die einzige Möglichkeit, die IP-Adresse des Clients zu erhalten. Überprüfen Sie, ob es eine Möglichkeit gibt, das in Ihrem Proxy zu aktivieren.
Bei einigen Proxyservern haben Sie die Möglichkeit, mit einem vorhandenen XFF-Header umzugehen (wenn die Anforderung mehrere Proxies durchläuft). Hier ist, was Sie beachten müssen,
Dieser Code kann verwendet werden, um die IP-Adresse des Clients zu erhalten, der sich über einen Proxy verbindet.
%Vor%Aber es erkennt nur, wenn Proxy transparent ist.
Nachfolgend finden Sie die Informationen zum HTTP-Proxy:
Keine Proxy-Server verwenden:
request.getRemoteAddr()
= IP-Adresse des Clients request.getHeader("HTTP_X_FORWARDED_FOR")
= Kein Wert oder Keine Anzeige Verwenden Sie transparente Proxies:
HTTP_X_FORWARDED_FOR
= Echte IP-Adresse des Clients Verwenden Sie normale anonyme Proxys:
request.getRemoteAddr()
= IP-Adresse des Proxy-Servers HTTP_X_FORWARDED_FOR
= IP-Adresse des Proxy-Servers Tags und Links php proxy ip-address