67 votes

Obtenir l'adresse IP du client : REMOTE_ADDR, HTTP_X_FORWARDED_FOR, quoi d'autre pourrait être utile ?

Je comprends que c'est une pratique standard de regarder ces deux variables. Bien sûr, elles peuvent facilement être falsifiées. Je suis curieux de savoir à quelle fréquence on peut s'attendre à ce que ces valeurs (en particulier la variable HTTP_X_FORWARDED_FOR ) pour contenir de véritables informations et ne pas être simplement brouillées ou vidées de leurs valeurs ?

Quelqu'un a une expérience ou des statistiques sur ce sujet ?

Y a-t-il autre chose qui puisse être utile pour obtenir l'adresse IP du client ?

1 votes

Notez que la question et les réponses utilisent toutes deux le préfixe HTTP_, qui est un détail de mise en œuvre particulier d'ASP.NET v1.0-v4.x, lorsque les en-têtes de requête HTTP sont ajoutés à la collection ServerVariables. Un autre exemple est REMOTE_ADDR, qui a sa propre API dans ASP.NET Core. stackoverflow.com/questions/28664686/

1voto

lmsurprenant Points 120

Si vous êtes derrière un proxy, vous devez utiliser X-Forwarded-For : http://en.wikipedia.org/wiki/X-Forwarded-For

Il s'agit d'un Projet de norme IETF avec un large soutien :

Le champ X-Forwarded-For est pris en charge par la plupart des serveurs proxy, notamment Squid, Apache mod_proxy, Pound, HAProxy, Varnish cache, IronPort Web Security Appliance, AVANU WebMux, ArrayNetworks, Radware's AppDirector et Alteon ADC, ADC-VX, et ADC-VA, F5 Big-IP, ProxySG de Blue Coat, Cisco Cache Engine, McAfee Web Gateway, Phion Airlock, Finjan's Vital Security, NetApp NetCache, jetNEXUS, Crescendo, etc. Networks, Maestro, Web Adjuster et Websense Web Security Gateway.

Sinon, voici quelques autres en-têtes courants que j'ai vus :

0voto

droope Points 646

Je sais que ce post est peut-être vieux, mais j'ai lu un article sur les empreintes digitales des navigateurs plus tôt dans la journée et j'ai pensé que ça pouvait valoir la peine d'en parler. ^^

vérifier https://panopticlick.eff.org/ dehors.

( concernant l'identification des clients de manière unique )

Regards, Pedro

-1voto

TauFeeQ Points 24

Appelez la méthode d'action ci-dessous depuis votre fichier JS (pour obtenir l'adresse ipv4).

    [HttpGet]
    public string GetIP()
    {
        IPAddress[] ipv4Addresses = Array.FindAll(
            Dns.GetHostEntry(string.Empty).AddressList,
            a => a.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
        return ipv4Addresses.ToString();
    }

Vérifiez après avoir gardé le point d'arrêt, et utilisez selon vos besoins. Cela fonctionne bien pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X