Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupérer une ip

    7 avril 2006 à 21:58:30

    Bonjour !
    Je voudrais savoir si il y a un moyen de récupérer l'IP d'un visiteur sur mon site.
    Pour par exemple en interdire l'accés.
    J'ai apris le PHP, xhtml et css. le problème je pensse que cela ne peut être fait que avec du javascript ou autre que je ne connais pas bien.

    Pouvez vous m'aider (si vous avez compris ma question ^^ )?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      7 avril 2006 à 22:12:35

      Bien sûr que cela peut se faire en php ( :-° edit : il me semblait que c'était faisable en javascript... Sans doute pas alors Dutonia ^^)
      Voici la variable globale qui permet d'enregistrer l'ip du visiteur en php
      $ip = $_SERVER['REMOTE_ADDR'];

      Si tu veux plus de précisions, pose tes questions dans le forum adéquat : PHP.
      • Partager sur Facebook
      • Partager sur Twitter
        7 avril 2006 à 22:14:01

        Salut,
        Si tu as appris le php, tu as mal lu les cours de M@t :/
        Il explique comment faire.
        Je te file quand même une fonction ;)
        <?php
        function get_ip() {
            if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
            }
            elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
                $ip  = $_SERVER['HTTP_CLIENT_IP'];
            }
            else {
                $ip = $_SERVER['REMOTE_ADDR'];
            }
            return $ip;
        }
        ?>

        Cela ne peux bien sûr PAS être fais en javascript car c'est un language client. Retiens-le ;)




        Bisous, Nyu
        • Partager sur Facebook
        • Partager sur Twitter
          7 avril 2006 à 22:14:08

          en php tu fais : $ip_visiteur = $_SERVER['REMOTE_ADDR'];
          voila
          • Partager sur Facebook
          • Partager sur Twitter
            7 avril 2006 à 23:19:33

            Hum, et vu que beaucoup ont une IP dynamique...
            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2006 à 1:25:27

              merco bien.
              En fait j'ai pas tout as fait fini le php là ^^
              Et j'ai vite survoler, donc si ça y est je chercherais mieux.

              il est vrai que aps mal on une ip dyna mais il en reste beaucoup avec une IP fixe, en tout cas avec free c'est ip fixe il me semble.
              Le but de cela est d'arriver a bannir des personnes qui mettent des propos injurieux ou autre ^^
              enfin c'est déjà ça de banis :D

              Merci pour tout.

              ps: Nyu, tu me pose une fonction mais elle est issue du cour? ou si c'est toi qui la faite tu pourrais me l'expliquer stp? merci
              • Partager sur Facebook
              • Partager sur Twitter
                8 avril 2006 à 21:18:20

                Elle n'est pas issue du cours et je ne l'ai pas faite.
                Je l'ai trouvé sur lephpfacile mais tu la trouve très facilement en cherchant bien avec google.
                En fait, cette fonction vérifie les variable superglobale $_SERVER les plus suceptible de contenir la vrai ip du visiteur.
                D'abord HTTP_X_FORWARDED_FOR puis HTTP_CLIENT_IP et enfin, si aucune des 2 infos n'est disponible, REMOTE_ADDR.
                Utilise quand même cette fonction avec modération car elle peux être une faille pour hacker ton site si tu la base sur l'ip du visiteur (ce qui serait en soit une grosse erreur...). Le hacker confirmer change son ip^et donc tu récupère un truc du genre 255.255.10.0 ce qui n'est pas une ip valide.
                Si j'ai le temps, je te resortirais une fonction que j'avais faite (un peu plus évolué) qui gérait ce problème.
                Si tu en as besoin bien sûr :p



                Bisous, Nyu
                • Partager sur Facebook
                • Partager sur Twitter
                  8 avril 2006 à 22:18:51

                  bah mon but et de récupérer une ip si tu peux m'éviter une faille je suis preneur bien sur ^^
                  merci bien.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 avril 2006 à 10:38:26

                    Ok, tu as de la chance, je l'ai retrouvé :p
                    <?php
                    function validip($ip){
                      if(!empty($ip) && ip2long($ip)!== -1){
                        $reserved_ips = array(
                          array('0.0.0.0','2.255.255.255'),
                          array('10.0.0.0','10.255.255.255'),
                          array('127.0.0.0','127.255.255.255'),
                          array('169.254.0.0','169.254.255.255'),
                          array('172.16.0.0','172.31.255.255'),
                          array('192.0.2.0','192.0.2.255'),
                          array ('192.168.0.0','192.168.255.255'),
                          array ('255.255.255.0','255.255.255.255'));

                        foreach($reserved_ips AS $r){
                          $min = ip2long ($r[0]);
                          $max = ip2long ($r[1]);
                          if((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return FALSE;
                        }
                        return TRUE;
                      }
                      else return FALSE;
                    }
                           
                           
                    function get_ip(){
                      if(isset($_SERVER['HTTP_CLIENT_IP']) && isset($_SERVER['HTTP_X_FORWARDED_F0R'])){
                        if(validip($_SERVER['HTTP_CLIENT_IP'])) return $_SERVER['HTTP_CLIENT_IP'];
                      }
                      elseif($_SERVER['HTTP_X_FORWARDED_FOR'] !== NULL){
                        $forwarded = str_replace(',', NULL, $_SERVER['HTTP_X_FORWARDED_FOR']);
                        $forwarded_array = split(' ', $forwarded);
                        foreach($forwarded_array AS $value) if(validip($value)) return $value;
                      }
                      else return $_SERVER['REMOTE_ADDR'];
                    }
                    ?>

                    Voilà, fais en bonne usage ;)



                    Bisous, Nyu
                    • Partager sur Facebook
                    • Partager sur Twitter

                    récupérer une ip

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown