Détection de proxi type TOR

Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 28 juin 2015 à 18:14
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 29 juin 2015 à 01:38
Bonjour,

J'aimerai ajouter une condition a cela afin de permettre une redirection en cas de proxi détecter:

Mais il faudrait comparai $ip ==$host Car si ils sont égale cela veux dire que on n'est pas sur un réseau de type tor.
Si il ne sont pas égale cela veux dire que l'on n'est sur un réseau de type TOR donc redirection vers une autre page.

Voici mon petit bout de code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang"fr">
<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ême ip que proxy';   // car on ne peut pas savoir l'ip
            $host = 'mê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ême ip que proxy';   // car on ne peut pas savoir l'ip
            $host = 'mê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';
 
     }
     if ($ip != $host)
     {
        echo "Tor détecter";
      }
echo "<b>Tes infos naviguateur, système d’exploitation :</b> $nav_os<br/>";
echo "<b>le type de proxy utilisé est :</b> $type_proxy<br/>";
echo "<b>Ton IP réelle est :</b> $ip<br/>";
echo "<b>Ton HOST réel est :</b> $host<br/>";
echo "<b>Ton IP PROXY réel est :</b> $ip_proxy<br/>";
echo "<b>Ton HOST PROXY réel est :</b> $host_proxy<br/>";
 
php?>
</body></html>

A voir également:

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
28 juin 2015 à 18:19
Quel est ton pb ?

Note :
$ip2 = $ip = $_SERVER['HTTP_CLIENT_IP'];
Me semble un peu erroné, $ip2 sera toujours à true, car l'assignation est correcte.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
28 juin 2015 à 18:22
J'aimerai avoir une comparaison supplémentaire afin de comparait $ip avec $host
Car j'ai remarqué quand j'utilise aucun proxy $ip == $host alors que avec un proxy $ip n'est pas égale a $host.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
28 juin 2015 à 18:24
J'ai voulu essayer cela:
if ($ip != $host)
{
echo "Tor détecter";
}

Mais rien car le reste du code marche bien.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 28/06/2015 à 18:29
Tu lis mal. Aucun boléen n'est impliqué. $ip2 vaudra $ip qui vaudra
$_SERVER['HTTP_CLIENT_IP']
, autrement dit c'est un double assignement.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
28 juin 2015 à 18:34
Oui mais au pire ça cela n'est pas grave j'aimerai juste avec une comparaison supplémentaire: de $ip et $ host
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
28 juin 2015 à 18:32
'lut, sache que le but de Tor est de rendre anonyme et de ne pas afficher l'utilisation de Tor: ce n'est pas juste un proxy normal.
Ton code détectera les proxys explicitant leur utilisation, mais pas Tor ni ceux se cachant.
Le seul moyen de détecter l'utilisation de Tor est de vérifier si l'IP est un des exit nodes, dont la liste est surement obtenable mais j'ignore comment.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
28 juin 2015 à 18:37
Bas étrangement sur le navigateur sans TOR: j'ai $ip qui est égale a $host.
Et sur le navigateur avec TOR j'ai $ip pas du tout égale a $host.
Donc étrangement ma question est pourquoi ?
Donc dans ma déduction je me suis dit si j'arrive a comparait ces deux valeurs $ip et $host si elle ne sont pas égale présence de TOR.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
28 juin 2015 à 19:49
Voici les capture d'écran :



Mais toujours est t'il que moi j'aimerai juste que le scripte compare $ip et $host la on tourne en rond...
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
28 juin 2015 à 19:54
Donc comme on peu le voir sur une capture on voit mon IP réel: 80.215.X.X ($ip). Juste en bas on voit l'host réel: 80.215.X.X ($host).

Dans l'autre capture ou il y a TOR: on voit l'ip réel: 188.139.X.X($ip). Juste en bas on voit l'host réel: atlantic480.us.X.com($host).

Donc voila pourquoi j'aimerai pouvoir avoir la possibilité de pouvoir comparait ces deux valeurs $ip et $host.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225 > flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021
29 juin 2015 à 01:17
Ah, tu parles de cet host là. Il s'agit d'une résolution DNS inverse, et ça n'indique en rien la présence d'un proxy ou non, juste un nom de domaine (souvent non-existant) associable à cette IP.
Dans le cas où la résolution ne se fait pas ça renvoie l'IP. C'est le cas pour toi, mais pas pour tout le reste d'internet; par exemple moi le host serait
ALyon-167-1-316-186.w109-217.abo.wanadoo.fr
, pourtant je n'utilise pas de proxy ni Tor.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 29/06/2015 à 01:41
J'aimerai pourtant pouvoir quel le scripte face la différence entre, vu que moi via mes FAI je n'est pas de domaine qui revient car j'ai tester avec les 3 FAI que j'ai de disponible.

Car pour moi cela serra une protection supplémentaire car j'ai écrit des centaines de pages de code pendant des semaines afin de mettre en place mon propre site, mais je suis sur que je me suis compliqué la vie car je sais très bien que il y a des solutions plus simple. Mais vu que je la connais pas, pour le moment cela suffi.

J'aimerai vraiment que le scripte puisse faire la différence entre les deux. SVP
Car sais pour accédé a une page administrateur même si celle si serra protéger par encore d'autres protections, seule moi doit y avoir accès.
0