IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Récupérer l'IP du visiteur


Sujet :

ASP.NET

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut Récupérer l'IP du visiteur
    Bonjour,

    Je travaille sur un site web qui sera consulté à la fois depuis le réseau local (intranet) et depuis l'extérieur (internet) et en VPN (extranet).

    Je vais donc avoir tout un tas de "points d'entrées" : routeur, firewall, proxy distant, etc.

    Et donc autant de difficultés à récupérer l'IP distante.

    Pour le moment, je développe local : le site est hébergé sur mon PC et j'y accès depuis mon PC.

    Ayant une IP fixe chez mon ISP et un nom de domaine, j'utilise le nom DNS de mon site (avec un alias déclaré sur un DNS public) plutôt que "localhost" ou l'ip locale de mon PC pour accéder au site.

    Les requêtes HTTP partent donc vers mon routeur, qui interroge mon ISP, qui lui répond "hey couillon, c'est toi-même qui t'appelle" et donc ma requête ne sort par du réseau, et repart de mon routeur.

    Je tente depuis ASP.NET d'afficher mon IP.

    La variable serveur REMOTE_ADDR indique l'IP de mon routeur (logique, c'est lui au final qui relaie la requête)
    La variable serveur HTTP_X_FORWARDED_FOR est systématiquement vide (et je me demande bien pourquoi)

    Par quel autre moyen pourrais-je retrouve l'IP du client ?
    On ne jouit bien que de ce qu’on partage.

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Euh...

    Je vais devenir chèvre...

    D'une requête HTTP à l'autre (selon les pages, mais c'est le même code qui tourne) j'ai pas la même REMOTE_ADDR :
    - Des fois c'est l'IP interne de ma box
    - Des fois c'est l'IP publique de ma box

    Et jamais HTTP_X_FORWARDED_FOR n'est renseigné par contre (j'aurais bien aimé aussi l'adresse interne au réseau en plus de l'adresse du proxy distant...)
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Points : 126
    Points
    126
    Par défaut
    salut, tu as essayé ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    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];
            }
        }
     
        return context.Request.ServerVariables["REMOTE_ADDR"];
    }
    https://stackoverflow.com/questions/...ess-in-asp-net

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Oui, et comme j'ai dis :
    REMOTE_ADDR contient l'adresse de mon routeur
    HTTP_X_FORWARDED_FOR est toujours vide

    J'ai ensuite tenté d'afficher toutes les variables reçues du navigateur. Aucune ne contient ni :
    - mon adresse publique
    - mon adresse locale

    Du coup je vais me contenter de ça...
    De toute façon c'était plutôt des variables "système" que j'aurais voulu récupérer, et non celles qui sont contenues dans les entête HTTP : car c'est avant tout pour tracer des tentatives d'intrusions sur mon site. Du coup la première chose qu'un hacker fera, c'est de masquer son IP dans ces headers... j'aurais préféré récupérer les infos de la trame IP, mais j'ai pas l'impression qu'on y ait accès...
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Points : 126
    Points
    126
    Par défaut
    Peut-être tu trouvera ton bonheur dans ce bout de code.
    https://www.codeproject.com/Articles...k-Sniffer-in-C

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Merci pour ce lien intéressant.

    Mais il ne m'est pas utile ici : une fois dans le contexte ASP.NET la trame est analysée et décodée depuis longtemps.
    Dommage que le Framework ne remonte pas dans les objets de haut niveau ces informations.

    Dans tous les cas, le site sera hébergé derrière un pare-feu doté de mécanismes de sécurité passive et active.
    Donc en cas de tentative d'intrusion (attaques DoS par exemple) il n'y aura pas de problème.

    Juste que par exemple en cas de tentative de brute force d'un mot de passe j'aurais aimé pouvoir loguer un maximum d'informations sur l'attaquant : ça peut toujours servir, surtout si au final il a réussi à passer et qu'il y a un préjudice. Ca permettrait de reconnaître une IP "dangereuse" même plusieurs heures/jours après et prendre des mesures même si la seconde fois elle a un comportement normal.

    Mais bon, en même temps le gars il installe un client Tor, et il peut changer d'IP en quelques secondes autant de fois qu'il le veut donc c'est pas forcément très utile.
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Points : 126
    Points
    126
    Par défaut
    Merci pour ces précisions.
    Pour Tor pas de souci .

    La liste des exit nodes .

    https://check.torproject.org/exit-addresses

    Pour le BruteForce un captcha user-friendly peut etre ?

    Et si ont par du principe qu'un attaquant passera toujours par un Vpn ,récupéré des list d'Ip a black lister https://udger.com/resources/ip-list/...ng_vpn_service.

    pour l'ip tu as essayer coter Js et ou avec une API ?

    https://freegeoip.net/json/ du genre .

    https://stackoverflow.com/questions/...avascript-only

Discussions similaires

  1. [PDO] PDO - récupérer le nombre de visiteurs
    Par anju-chan dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 11/12/2017, 12h33
  2. Récupérer l'OS du visiteur
    Par peplum37 dans le forum Langage
    Réponses: 1
    Dernier message: 17/12/2007, 21h05
  3. Récupérer le navigateur du visiteur
    Par Olivier Regnier dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2007, 11h09
  4. Récupérer le nom du système d'exploitation du visiteur
    Par Olivier Regnier dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2007, 00h06
  5. Récupérer le nom de domaine d'un visiteur
    Par Yoshidu62 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/07/2006, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo