Heim > Backend-Entwicklung > C++ > Wie bekomme ich die wahre Client -IP -Adresse in ASP.NET?

Wie bekomme ich die wahre Client -IP -Adresse in ASP.NET?

Susan Sarandon
Freigeben: 2025-01-30 09:56:10
Original
465 Leute haben es durchsucht

How to Get the True Client IP Address in ASP.NET?

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>
Nach dem Login kopieren
<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>
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage