Anfrage.UserHostAddress return IP-Adresse des Load-Balancer
Ich habe eine kritische Zeile code in meine Website, die arbeitete in unserer Entwicklungsumgebung, nicht aber auf die Produktion. Nun, ich sagen, es arbeitete in der Entwicklung, aber die Wahrheit ist, es gab ::1
, das ist die IPv6-loopback-Adresse.
Sowieso, was ich tun wollte, war, erfassen die IP-Adresse des Benutzers, der auf die Website kam. Ich daher verwendet Request.UserHostAddress
zu tun. Auf Entwicklung, wie ich schon sagte, es gab mir die loopback-Adresse korrekt ist, da ich mit der Seite meiner Maschine. Auf live es dauerte etwas ganz anderes. Es immer wieder die Adresse des load-balancer.
Was ich versuche, zu verstehen ist. Ich war falsch, zu verwenden Anfrage.UserHostAddress zu erfassen, die Nutzer-IP-Adresse oder gibt es etwas falsch mit unserem Netzwerk-setup oder etwas anderes?
Dank,
Sachin
Du musst angemeldet sein, um einen Kommentar abzugeben.
Innerhalb Ihrer eigenen Anwendung, wenn nichts anderes getan wurde, um Ihnen zu helfen, Sie stecken. Das ist so viel information wie Sie zur Verfügung stehen.
Wenn Sie Glück haben, load-balancer wurde so konfiguriert, fügen Sie eine oder mehrere zusätzliche Kopfzeilen mit Informationen über den ursprünglichen Antrag.
Einer gemeinsamen Lösung ist die
X-Forwarded-For
header:würden Sie dann Zugriff über die
Request.Headers
Eigenschaft.Aber, zu ermitteln, ob diese (oder andere) - header verfügbar ist, ist nicht etwas, das wir helfen können - Sie müssen zu den Menschen sprechen, die Konfiguration des load balancer für Ihre Organisation.
In Bezug auf @Damien_The_Unbeliever's Antwort, hier die komplette Lösung:
Verwendet diesen code, um zu untersuchen Produktion und Umwelt... bei mir hat Es geklappt: