Maison >développement back-end >C++ >Comment obtenir la véritable adresse IP du client dans 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>
<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>
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!