genau bestimmen Benutzer -IP -Adressen in ASP.NET -Anwendungen
Die Herausforderung:
Zugriff auf die IP -Adresse des Benutzers unter Verwendung Request.UserHostAddress
ergibt häufig die IP -Adresse des Internetdienstanbieters (ISP) des Benutzers und nicht deren tatsächliche Maschinen -IP. Diese Einschränkung ist erhebliche Probleme für Anwendungen, die eine präzise IP -Identifizierung erfordern, z. B. diejenigen, die den Download -Zugriff kontrollieren.
Eine robustere Lösung:
Ein zuverlässiger Ansatz beinhaltet die Nutzung der HTTP_X_FORWARDED_FOR
Servervariablen. Diese Variable bietet eine genauere Darstellung der IP -Adresse des Benutzers, selbst wenn der Benutzer hinter einem Proxy -Server oder einem Netzwerkrouter steht.
Code -Implementierung:
Hier sind Code -Beispiele, die zeigen
c# Beispiel:
<code class="language-csharp">protected string GetTrueIPAddress() { var context = System.Web.HttpContext.Current; string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!string.IsNullOrWhiteSpace(ipAddress)) { return ipAddress.Split(',')[0].Trim(); } return context.Request.ServerVariables["REMOTE_ADDR"]; }</code>
vb.net Beispiel:
<code class="language-vb.net">Public Shared Function GetTrueIPAddress() As String Dim context As System.Web.HttpContext = System.Web.HttpContext.Current Dim ipAddress As String = context.Request.ServerVariables("HTTP_X_FORWARDED_FOR") If Not String.IsNullOrWhiteSpace(ipAddress) Then Return ipAddress.Split(","c)(0).Trim() End If Return context.Request.ServerVariables("REMOTE_ADDR") End Function</code>
Das obige ist der detaillierte Inhalt vonWie bekomme ich zuverlässig die echte IP -Adresse eines Benutzers in ASP.NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!