Wir müssen die IP-Adresse des Clients über eine Seam-Aktion protokollieren. Derzeit verwenden wir den Code:
%Vor%Dies scheint jedoch immer eine interne Adresse unseres Netzwerks und nicht die IP-Adresse des Clients zu liefern. Aus meinen Recherchen geht hervor, dass ein Reverse-Proxy im Netzwerk die Dinge verwirren kann, aber wir könnten es möglicherweise beheben, indem wir unsere Webserver neu konfigurieren. Hat jemand anderes dieses Problem und wie haben Sie es gelöst?
Wir verwenden JBoss 5.1-App-Server und Apache-Webserver. Danke!
Sie können einen Proxy "durchschauen" und die Adresse des ursprünglichen Anforderers mithilfe von
aus der KopfzeileX-FORWARDED-FOR
abrufen
%Vor%
Ich nehme an, dass ein fehlerhafter Proxy zwischen dem ursprünglichen Anforderer und Ihrem Server dazu führen kann, dass der wahre Wert verloren geht.
Was Sie brauchen, ist, dass Ihr Reverse-Proxy die ursprüngliche IP-Adresse in einem speziellen Header wie x-forwarded-for
weiterleitet. Sie können diesen Header dann von Ihrem Servlet abrufen. Darüber hinaus möchten Sie möglicherweise Ihre Protokolldatei ändern, um diese IP-Adresse zu protokollieren. Beispiel: