genaue Client -IP -Adresse Abruf in ASP.NET -Anwendungen
Die Ermittlung der tatsächlichen IP -Adresse des Benutzers ist für viele ASP.NET -Anwendungen von entscheidender Bedeutung, einschließlich Benutzeridentifikation und Verkehrsmanagement. Während Request.UserHostAddress
eine IP-Adresse liefert, repräsentiert sie häufig den Proxy-Server oder den Ladeauslager, nicht das Gerät des Endbenutzers.
nutzt http_x_forwarded_for
Die Lösung liegt in der Verwendung der HTTP_X_FORWARDED_FOR
Servervariablen. Diese Variable speichert die ursprüngliche Client -IP -Adresse, wenn Anforderungen von Traverse -Proxy -Servern oder Netzwerkgeräten angefordert werden. Priorisierung HTTP_X_FORWARDED_FOR
Stellen Sie sicher, dass die genaue IP -Adresse abgerufen wird.
C# und VB.NET -Code -Beispiele
Die folgenden Code -Snippets zeigen, wie diese Lösung sowohl in C# als auch in vb.net:
implementiert werden kann<code class="language-csharp">protected string GetIPAddress() { System.Web.HttpContext context = System.Web.HttpContext.Current; string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!string.IsNullOrEmpty(ipAddress)) { string[] addresses = ipAddress.Split(','); if (addresses.Length > 0) { return addresses[0].Trim(); //Added Trim to remove whitespace } } return context.Request.ServerVariables["REMOTE_ADDR"]; }</code>
<code class="language-vb.net">Public Shared Function GetIPAddress() 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.IsNullOrEmpty(ipAddress) Then Dim addresses As String() = ipAddress.Split(","c) If addresses.Length > 0 Then Return addresses(0).Trim() 'Added Trim to remove whitespace End If End If Return context.Request.ServerVariables("REMOTE_ADDR") End Function</code>
Diese Funktionen prüfen zuerst nach HTTP_X_FORWARDED_FOR
. Wenn vorhanden, extrahiert es die erste IP-Adresse aus der von Kommas getrennten Liste. Wenn nicht gefunden, fällt es auf REMOTE_ADDR
zurück. Eine Trim()
-Funktion wurde hinzugefügt, um alle führenden oder nachfolgenden Whitespace aus der IP -Adresszeichenfolge zu entfernen, um eine bessere Zuverlässigkeit zu erhalten. Diese Methode verbessert die Genauigkeit, die echte Client -IP -Adresse zu erhalten, die Sicherheit und Funktionalität der Anwendungen zu stärken.
Das obige ist der detaillierte Inhalt vonWie bekomme ich die wahre Client -IP -Adresse in ASP.NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!