[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:
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ê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';
}
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/>";
?>
</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 :king: