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

Langage PHP Discussion :

[Système] Beta-test détection de proxy [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 93
    Points
    93
    Par défaut [Système] Beta-test détection de proxy
    Salut à tous

    J'essaye en ce moment de mettre au point une fonction de détection de parametre du client (navigateur, os, ip, et surtout proxi). j'ai fait une page de test simple qui fait juste afficher les paramètre du visiteur afin de lancer le beta-test

    voici le code php de cette page:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>MON IP</TITLE>
    </HEAD><BODY>
    <h2>DETECTION DES PARAMETRE DU VISITEUR:</h2>
    <?
         $nav_os = $_SERVER["HTTP_USER_AGENT"]; // récuperation des infos de connection (OS/BROWSER)
     
         if (isset($_SERVER['HTTP_CLIENT_IP'])) // si proxy détecté
         {
        $ip = $_SERVER['HTTP_CLIENT_IP'];        // récuperation de l'ip supposé du client
        $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
            $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy = $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_CLIENT_IP'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) // si proxy détecté
         {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  // récuperation de l'ip supposé du client
        $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
        $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy = $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         else // si pas de proxy détecté
         {
            $ip = $_SERVER['REMOTE_ADDR']; // recuperation de l'ip du membre
            $host = gethostbyaddr($ip);    // recuperation de l'hote du membre
        $ip_proxy = 'pas de proxy';                // pas d'ip proxy
        $host_proxy = 'pas de proxy';              // pas d'hote proxy
        $type_proxy = 'pas de proxy';
     
         }
    echo "<b>Tes infos naviguateur, syst&egrave;me d&rsquo;exploitation :</b> $nav_os<br/>";
    echo "<b>le type de proxy utilis&eacute; est :</b> $type_proxy<br/>";
    echo "<b>Ton IP r&eacute;elle est :</b> $ip<br/>";
    echo "<b>Ton HOST r&eacute;el est :</b> $host<br/>";
    echo "<b>Ton IP PROXY r&eacute;el est :</b> $ip_proxy<br/>";
    echo "<b>Ton HOST PROXY r&eacute;el est :</b> $host_proxy<br/>";
     
    ?>
    </BODY></HTML>
    si certaint d'entre vous utilise un proxy pour surfer anonymement, j'aimerai avoir un retour d'info de ce beta-test (copier/coller des info de proxy sur ce sujet). Attention quand même à ne pas copier/coller votre ip perso et votre hote perso

    merci d'y ajouter aussi une confirmation que le type de proxy détecter correspond bien à celui que vous utiliser...

    merci d'avance pour vos réponse et conseil

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($host_proxy = $ip_proxy)
    avec des bouts de code comme ça, ca va pas aller loin !!


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 93
    Points
    93
    Par défaut
    je corrige... il est vrai qu'il residait quelque enormité :p

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>MON IP</TITLE>
    </HEAD><BODY>
    <h2>DETECTION DES PARAMETRE DU VISITEUR:</h2>
    <?php
         $nav_os = $_SERVER["HTTP_USER_AGENT"]; // récuperation des infos de connection (OS/BROWSER)
     
         if (isset($_SERVER['HTTP_CLIENT_IP'])) // si proxy détecté
         {
        $ip = $_SERVER['HTTP_CLIENT_IP'];        // récuperation de l'ip supposé du client
        $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
            $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy == $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_CLIENT_IP'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) // si proxy détecté
         {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  // récuperation de l'ip supposé du client
        $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
        $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy == $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         else // si pas de proxy détecté
         {
            $ip = $_SERVER['REMOTE_ADDR']; // recuperation de l'ip du membre
            $host = gethostbyaddr($ip);    // recuperation de l'hote du membre
        $ip_proxy = 'pas de proxy';                // pas d'ip proxy
        $host_proxy = 'pas de proxy';              // pas d'hote proxy
        $type_proxy = 'pas de proxy';
     
         }
    echo "<b>Tes infos naviguateur, syst&egrave;me d&rsquo;exploitation :</b> $nav_os<br/>";
    echo "<b>le type de proxy utilis&eacute; est :</b> $type_proxy<br/>";
    echo "<b>Ton IP r&eacute;elle est :</b> $ip<br/>";
    echo "<b>Ton HOST r&eacute;el est :</b> $host<br/>";
    echo "<b>Ton IP PROXY r&eacute;el est :</b> $ip_proxy<br/>";
    echo "<b>Ton HOST PROXY r&eacute;el est :</b> $host_proxy<br/>";
     
    php?>
    </BODY></HTML>

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Une petite erreur pas de php en fermeture
    et puis pioche ici, tu auras quelques infos en plus
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    <?php
                $so = $_SERVER['HTTP_USER_AGENT'];
                $windowsxp = preg_match('/windows nt 5.1/i', $so);
                $windowsxp2 = preg_match('/windows xp/i', $so);
                $linux = preg_match('/linux/i', $so);
                $windowsme = preg_match('/win 9x 4.90/i', $so);
                $windowsme2 = preg_match('/windows me/i', $so);
                $windows2k = preg_match('/windows nt 5.0/i', $so);
                $windows2kb = preg_match('/windows 2000/i', $so);
                $windowsnt = preg_match('/windows nt 3.1/i', $so);
                $windowsnt2 = preg_match('/windows nt 3.5.0/i', $so);
                $windowsnt3 = preg_match('/windows nt 3.5.1/i', $so);
                $windowsnt4 = preg_match('/windows nt 4.0/i', $so);
                $windows98 = preg_match('/windows 98/i', $so);
                $windows95 = preg_match('/windows 95/i', $so);
     
                if ($windowsxp == 1 or $windowsxp2 == 1) {
                $OS = 'Windows XP';
                } else if ($linux == 1) {
                $OS = 'Linux';
                } else if ($windowsme == 1 or $windowsme2 == 1) {
                $OS = 'Windows ME';
                } else if ($windows2k == 1 or $windows2kb == 1) {
                $OS = 'Windows 2000';
                } else if ($windowsnt == 1 or $windowsnt2 == 1 or $windowsnt3 == 1 or $windowsnt4 == 1) {
                $OS = 'Windows NT';
                } else if ($windows98 == 1 and $windowsme != 1) {
                $OS = 'Windows 98';
                } else if ($windows95 == 1) {
                $OS = 'Windows 95';
                } else {
                $OS = 'Non identifié';
                }
     
                $b = $_SERVER['HTTP_USER_AGENT'];
                $ie40 = preg_match('/MSIE 4/i', $b);
                $ie50 = preg_match('/MSIE 5.0/i', $b);
                $ie55 = preg_match('/MSIE 5.5/i', $b);
                $ie60 = preg_match('/MSIE 6.0/i', $b);
                $opera = preg_match('/opera/i', $b);
     
                if ($ie40 == 1) {
                $browser = 'Internet Explorer 4.0';
                } else if ($ie50 == 1) {
                $browser = 'Internet Explorer 5.0';
                } else if ($ie55 == 1) {
                $browser = 'Internet Explorer 5.5';
                } else if ($ie60 == 1) {
                $browser = 'Internet Explorer 6.0';
                } else if ($opera == 1) {
                $browser = 'Opera';
                } else {
                $browser = 'Internet Explorer > 7';
                }
                 $ip_client = (getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') : getenv('REMOTE_ADDR'));
                 $dns = gethostbyaddr($ip_client);
                 if($dns==''){$dns='Non identifiée';}
                 $date = " ";
                 $heure = " ";
     
     
    ?>
     
    <HTML>
    <BODY TEXT="#FFFFFF" BGCOLOR="#000099" link="#FFFFFF" VLINK="#FFFFFF" ALINK="#33CCFF">
    &nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;
     
    <CENTER><TABLE BORDER=0 COLS=1 WIDTH="10%" BGCOLOR="#C0C0C0" >
     
    <TR>
     
    <TD align=center><TT><FONT COLOR="#330033"><? echo($OS); ?></FONT></TT></TD>
     
    </TR>
     
    </TABLE></CENTER>
     
    <br>
    <table border=0 width=60% align=center>
    <tr>
    <td align=left>
    <pre>
     adresse IP <? echo($ip_client); ?> <br>
     Navigateur <? echo($browser); ?><br>
     DNS <? echo($dns); ?><br>
    <br>
     <?
          $so = $_SERVER['HTTP_USER_AGENT'];
          echo "X_SERVER[xHTTP_USER_AGENTx]; ==>".$so."<==<BR> \n";
     
          $so = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
          echo "X_SERVER[xHTTP_ACCEPT_LANGUAGEx]; ==>".$so."<==<BR> \n";
     
     
          $so = $_SERVER['HTTP_CONNECTION'];
          echo "X_SERVER[xHTTP_CONNECTIONx]; ==>".$so."<==<BR> \n";
     
          $so = $_SERVER['HTTP_ACCEPT'];
          echo "X_SERVER[xHTTP_ACCEPTx]; ==>".$so."<==<BR> \n";
     
     
          $so = $_SERVER['SERVER_SOFTWARE'];
          echo "X_SERVER[xSERVER_SOFTWAREx]; ==>".$so."<==<BR> \n";
     
          $so = $_SERVER['SERVER_ADMIN'];
          echo "X_SERVER[xSERVER_ADMINx]; ==>".$so."<==<BR> \n";
     
          $so = $_SERVER['HTTP_REFERER'];
          echo "X_SERVER[xHTTP_REFERERx]; ==>".$so."<==<BR> \n";
     
          $so = $_SERVER['REMOTE_ADDR'];
          echo "X_SERVER[xREMOTE_ADDRx]; ==>".$so."<==<BR> \n";
     
     ?>
    </pre>
    </td>
    </tr>
    </table>
     
    </BODY>
     
    </HTML>

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 93
    Points
    93
    Par défaut
    derniere mise à jour...

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>MON IP</TITLE>
    </HEAD><BODY>
    <h2>DETECTION DES PARAMETRE DU VISITEUR:</h2>
    <?php
         $nav_os = $_SERVER["HTTP_USER_AGENT"]; // récuperation des infos de connection (OS/BROWSER)
     
         if(isset($_SERVER['HTTP_CLIENT_IP'])) // si proxy détecté
         {
            $ip = $_SERVER['HTTP_CLIENT_IP'];        // récuperation de l'ip supposé du client
            $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
            $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy == $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_CLIENT_IP'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) // si proxy détecté
         {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  // récuperation de l'ip supposé du client
            $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
            $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy == $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         else // si pas de proxy détecté
         {
            $ip = $_SERVER['REMOTE_ADDR']; // recuperation de l'ip du membre
            $host = gethostbyaddr($ip);    // recuperation de l'hote du membre
            $ip_proxy = 'pas de proxy';                // pas d'ip proxy
            $host_proxy = 'pas de proxy';              // pas d'hote proxy
            $type_proxy = 'pas de proxy';
         }
    echo "<b>Tes infos naviguateur, syst&egrave;me d&rsquo;exploitation :</b> $nav_os<br/>";
    echo "<b>le type de proxy utilis&eacute; est :</b> $type_proxy<br/>";
    echo "<b>Ton IP r&eacute;elle est :</b> $ip<br/>";
    echo "<b>Ton HOST r&eacute;el est :</b> $host<br/>";
    echo "<b>Ton IP PROXY r&eacute;el est :</b> $ip_proxy<br/>";
    echo "<b>Ton HOST PROXY r&eacute;el est :</b> $host_proxy<br/>";
     
    echo '____________________________________________________________________<br/>';
    echo '$_SERVER[\'REMOTE_ADDR\']: '.$_SERVER['REMOTE_ADDR'];
    echo '$_SERVER[\'HTTP_VIA\']: '.$_SERVER['HTTP_VIA'];
    echo '$_SERVER[\'HTTP_X_FORWARDED_FOR\']: '.$_SERVER['HTTP_X_FORWARDED_FOR'];
    ?>
    </BODY></HTML>
    Mon soucis est que j'ai tester en ligne et que j'ai les erreur suivante:
    Notice: Undefined index: HTTP_VIA in /home/www/beroots/www/beroots-web/test2.php on line 100
    $_SERVER['HTTP_VIA']:
    Notice: Undefined index: HTTP_X_FORWARDED_FOR in /home/www/beroots/www/beroots-web/test2.php on line 101
    $_SERVER['HTTP_X_FORWARDED_FOR']:
    une idée ?

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Tu devrais lire ce fil rescent, chez nous
    http://www.developpez.net/forums/d40...s/adresses-ip/


  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 93
    Points
    93
    Par défaut
    ok j'ai fait des test pour voir mais j'ai des problèmes que je ne solve pas...

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>MON IP</TITLE>
    </HEAD><BODY>
    <h2>DETECTION DES PARAMETRE DU VISITEUR:</h2>
    <?php
         $nav_os = $_SERVER["HTTP_USER_AGENT"]; // récuperation des infos de connection (OS/BROWSER)
     
         if(isset($_SERVER['HTTP_CLIENT_IP'])) // si proxy détecté
         {
            $ip = $_SERVER['HTTP_CLIENT_IP'];        // récuperation de l'ip supposé du client
            $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
            $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy == $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_CLIENT_IP'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) // si proxy détecté
         {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  // récuperation de l'ip supposé du client
            $host = gethostbyaddr($ip);              // recuperation de l'hote supposé du client
            $ip_proxy = $_SERVER['REMOTE_ADDR'];     // récuperation de l'ip du proxy
            $host_proxy = gethostbyaddr($ip_proxy);  // recuperation de l'hote du proxy
     
            // on détermine le type de proxy et si possible l'ip reel du client
            if($host_proxy == $ip_proxy) // si la fonction gethostbyaddr($ip_proxy) échoue et qu'elle retourne $ip_proxy, proxy hautement sécurisé
            {
                $type_proxy = 'proxy hautement anonyme';
                $ip =  'rien';  // car on ne peut pas savoir l'ip
                $host = 'rien'; // car on ne peut pas savoir l'hote
            }
            elseif($ip != $ip_proxy) // si proxy aléatoire ou proxy transparent (normal), on doit définir lequel
            {
                // on execute une deuxieme requete pour voir si l'ip2 differt de l'ip
                $ip2 =  $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
     
                if($ip != $ip2) // si proxy aléatoire (ip aleatoire pour le client)
                {
                    $type_proxy = 'proxy aléatoire';
                    $ip =  "$ip (aleatoire)";  // car on ne peut pas savoir l'ip
                    $host =  "$host";  // car on ne peut pas savoir l'hote
                }
                else // si proxy transparent (normal) (ip et host client récuperable)
                {
                    $type_proxy = 'proxy transparent (normal)';
                }
            }
            else // si proxy anonyme (ip et host sont celles du proxy)
            {
                $type_proxy = 'proxy anonyme';
                $ip = 'm&ecirc;me ip que proxy';   // car on ne peut pas savoir l'ip
                $host = 'm&ecirc;me hote que proxy'; // car on ne peut pas savoir l'hote
            }
         }
         else // si pas de proxy détecté
         {
            $ip = $_SERVER['REMOTE_ADDR']; // recuperation de l'ip du membre
            $host = gethostbyaddr($ip);    // recuperation de l'hote du membre
            $ip_proxy = 'pas de proxy';                // pas d'ip proxy
            $host_proxy = 'pas de proxy';              // pas d'hote proxy
            $type_proxy = 'pas de proxy';
         }
     
     
     
    echo "<b>Tes infos naviguateur, syst&egrave;me d&rsquo;exploitation :</b> $nav_os<br/>";
    echo "<b>le type de proxy utilis&eacute; est :</b> $type_proxy<br/>";
    echo "<b>Ton IP r&eacute;elle est :</b> $ip<br/>";
    echo "<b>Ton HOST r&eacute;el est :</b> $host<br/>";
    echo "<b>Ton IP PROXY r&eacute;el est :</b> $ip_proxy<br/>";
    echo "<b>Ton HOST PROXY r&eacute;el est :</b> $host_proxy<br/>";
     
    echo '____________________________________________________________________<br/>';
    echo '____________________________________________________________________<br/>';
     
    echo '$_SERVER[\'HTTP_CLIENT_IP\']: '.$_SERVER['HTTP_CLIENT_IP'].'<br/>';
    echo '$_SERVER[\'REMOTE_ADDR\']: '.$_SERVER['REMOTE_ADDR'].'<br/>';
    echo '$_SERVER[\'HTTP_VIA\']: '.$_SERVER['HTTP_VIA'].'<br/>';
    echo '$_SERVER[\'HTTP_X_FORWARDED_FOR\']: '.$_SERVER['HTTP_X_FORWARDED_FOR'].'<br/>';
    echo '$_SERVER[\'HTTP_X_COMING_FROM\']: '.$_SERVER['HTTP_X_COMING_FROM'].'<br/>';
    echo '$_SERVER[\'HTTP_COMING_FROM\']: '.$_SERVER['HTTP_COMING_FROM'].'<br/>';
     
    echo '____________________________________________________________________<br/>';
    echo '____________________________________________________________________<br/>';
     
       $realIP = "";
     
       if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
       		echo "HTTP_X_FORWARDED_FOR: " . $_SERVER["HTTP_X_FORWARDED_FOR"] . "<br>";
    		$realIP = $_SERVER["HTTP_X_FORWARDED_FOR"];
    		}
     
       if (isset($_SERVER["HTTP_CLIENT_IP"])) {
    		echo "HTTP_CLIENT_IP: " . $_SERVER["HTTP_CLIENT_IP"] . "<br>";
    		if ($realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP = $_SERVER["HTTP_CLIENT_IP"];
    		}
     
       if (isset($_SERVER["HTTP_X_COMING_FROM"])) {
       		echo "HTTP_X_COMING_FROM: " . $_SERVER["HTTP_X_COMING_FROM"] . "<br>";
    		if ($realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP = $_SERVER["HTTP_X_COMING_FROM"];
    		}
     
       if (isset($_SERVER["HTTP_COMING_FROM"])) {
    		echo "HTTP_COMING_FROM: " . $_SERVER["HTTP_COMING_FROM"] . "<br>";
    		if ($realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP = $_SERVER["HTTP_COMING_FROM"];
    		}
     
       if (isset($_SERVER["HTTP_VIA"]))  {
    		echo "HTTP_VIA: " . $_SERVER["HTTP_VIA"] . "<br>";
    		if ($realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP = $_SERVER["HTTP_VIA"];
    		}
       if (isset($_SERVER["REMOTE_ADDR"]))  {
            echo "REMOTE_ADDR: " . $_SERVER["REMOTE_ADDR"] . "<p>";
            if ($realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP = $_SERVER["REMOTE_ADDR"];
            }
     
       echo "REAL IP: $realIP";
     
    ?>
    </BODY></HTML>
    pour voir cela, je vous renvoi vers ma page de test http://www.beroots-web.fr/test2.php vous pouvez utilisé http://proxy.org/ pour passer par proxy en soumettant l'url de ma page de test....

    les test sont un réel echec pour le moment... si quelqu'un peut m'expliquer pourquoi j'ai ces erreurs de type:
    Notice: Undefined index: HTTP_CLIENT_IP in /home/www/beroots/www/beroots-web/test2.php on line 101
    merci d'avance pour vos idées et conseils...

  8. #8
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Je pense que tu as besoins de relire des tutoriels de Développez

    Débug un peu et lit les messages d'erreur de PHP.

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Je penses comme Maxoo,

    En plus sache que nous prenons le temps non seulement de te lire mais de tester, or, le PHP que tu nous montre n' est pas celui de ton lien, alors a quoi ça sert ??

    Le PHP que tu nous montre donne ceci,
    URL retiree

    Alors comment veux-tu étre aidé
    Dernière modification par FoxLeRenard ; 16/04/2009 à 02h26.

Discussions similaires

  1. [BETA TEST] Informations
    Par funkydata dans le forum NxEngine
    Réponses: 139
    Dernier message: 08/01/2009, 21h13
  2. [BETA TEST] Configs des béta testeurs
    Par funkydata dans le forum NxEngine
    Réponses: 23
    Dernier message: 27/06/2007, 07h45
  3. [Joost] invite pour beta test
    Par grabriel dans le forum Films & TV
    Réponses: 50
    Dernier message: 17/05/2007, 14h18

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