Maison > développement back-end > C++ > Comment obtenir la véritable adresse IP du client dans asp.net?

Comment obtenir la véritable adresse IP du client dans asp.net?

Susan Sarandon
Libérer: 2025-01-30 09:56:10
original
430 Les gens l'ont consulté

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

RÉCULTATION DE L'ADRESSE IP Client précise dans les applications ASP.NET

La détermination de l'adresse IP réelle de l'utilisateur est vitale pour de nombreuses applications ASP.NET, y compris l'identification de l'utilisateur et la gestion du trafic. Alors que Request.UserHostAddress fournit une adresse IP, il représente souvent le serveur proxy ou l'équilibreur de charge, pas le périphérique de l'utilisateur final.

Tiration de http_x_forwarded_for

La solution réside dans l'utilisation de la variable de serveur HTTP_X_FORWARDED_FOR. Cette variable stocke l'adresse IP du client d'origine lors des demandes de serveurs proxy ou de périphériques réseau. Prioriser HTTP_X_FORWARDED_FOR assure la récupération de l'adresse IP précise.

C # et vb.net Code Exemples

Les extraits de code suivants montrent comment implémenter cette solution dans C # et VB.NET:

<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>
Copier après la connexion
<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>
Copier après la connexion

Ces fonctions vérifient d'abord HTTP_X_FORWARDED_FOR. S'il est présent, il extrait la première adresse IP de la liste séparée des virgules. S'il n'est pas trouvé, il retombe à REMOTE_ADDR. Une fonction Trim() a été ajoutée pour supprimer tout espace blanc ou de fin de la chaîne d'adresse IP pour une meilleure fiabilité. Cette méthode améliore considérablement la précision de l'obtention de l'adresse IP du client véritable, renforçant la sécurité et les fonctionnalités de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal