Maison > développement back-end > C++ > Comment obtenir de manière fiable une véritable adresse IP d'un utilisateur dans ASP.NET?

Comment obtenir de manière fiable une véritable adresse IP d'un utilisateur dans ASP.NET?

Barbara Streisand
Libérer: 2025-01-30 09:46:10
original
731 Les gens l'ont consulté

How to Reliably Get a User's Real IP Address in ASP.NET?

Déterminer avec précision les adresses IP utilisateur dans les applications ASP.NET

Le défi:

Accédant directement à l'adresse IP de l'utilisateur à l'aide de Request.UserHostAddress Donne souvent l'adresse IP du fournisseur de services Internet (ISP) de l'utilisateur, plutôt que de son IP de machine réelle. Cette limitation pose des problèmes importants pour les applications qui nécessitent une identification IP précise, comme celles contrôlant l'accès au téléchargement.

Une solution plus robuste:

Une approche fiable consiste à exploiter la variable de serveur HTTP_X_FORWARDED_FOR. Cette variable fournit une représentation plus précise de l'adresse IP de l'utilisateur, même lorsque l'utilisateur est derrière un serveur proxy ou un routeur réseau.

Implémentation du code:

Voici des exemples de code démontrant comment récupérer la véritable adresse IP en utilisant cette méthode:

C # Exemple:

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

VB.net Exemple:

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

En implémentant cette méthode améliorée, vos applications ASP.NET peuvent obtenir de manière fiable des adresses IP utilisateur uniques, quelles que soient les configurations réseau. Cela garantit une identification et un contrôle précis des utilisateurs pour des fonctionnalités telles que les restrictions de téléchargement.

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