Se connecter / S'enregistrer
Votre question

bannir une ip changeante

Tags :
  • Index
  • Programmation
Dernière réponse : dans Programmation
8 Janvier 2007 21:18:08

Bonjour,
depuis un certain temps quelqun avec une ip changeante flood ma chat box ( vous allez me dire enleve ta chat box ... ba non po envi ^^ ) bRef est il possible de le ban de mon site ? mm avec son ip changeante ?

PS: si possible une explication précise parceque je ne m y connais pas du tout dans ce domaine de ban ...

Mon index est en PhP.

MERCI :) 

Autres pages sur : bannir changeante

8 Janvier 2007 22:25:55

non, pas avec ip changeante, ce que tu peut faire c'est autorisé un postage tout les 5 min (controle par session+cookie+ip dans bdd) sa sera déja beaucoup plus chiant pour celui qui te fait ca.
8 Janvier 2007 23:02:53

hm hm comment je peux faire ca en détaillé stp , dsl je connais pas ...

je precise : j ai une chat box : i-tchat de http://i-tchat.com en version free
( dans la version pro ils proposent une option pour ban les ip , mais
1/ pas envi de paye pour une chat box ^^
2/marche pas apparement d apres ce que j ai lu sur leur forum ...

THX
Contenus similaires
8 Janvier 2007 23:19:47

bah normale qu'ils ne peuvent pas ban une ip dynamique, sauf en rajoutant des options comme je l'ai dit plus haut, et je te parlais poir un system propre a toi, pas pour un autre site intégré en iframe, pour l'instant tu ne peut rien faire, sauf attendre que l'autre nouille arrete, il se lassera.
23 Janvier 2007 08:15:50

J'ai testé et ca marche bien. Si qqun rafraichi un certain nombre de fois la page en question, il est banni avec le ip qui utilise. Lire la doc qui suit et utilise ce code :

  1. <?php
  2. /////////////////////////////////////////////////////////////////////////////////////
  3. // Script bloquant les aspirateurs de site - v 0.2 - 15/01/2003 //
  4. // Info: Renardrouge@rocketmail.com - <a href="http://www.1001bd.com" rel="nofollow" target="_blank">http://www.1001bd.com</a> //
  5. /////////////////////////////////////////////////////////////////////////////////////
  6. // Création: Janvier 2003 //
  7. // Ce script a été créer suite à une conversation stérile avec le //
  8. // developpeur d'un aspirateur de site. Il refusait de reconnaitre les //
  9. // dégats que peut entrainer son soft quand il est utilisé à tort //
  10. // et à travers, ou contre l'avis des webmasters, en passant outre les //
  11. // directives du robots.txt //
  12. /////////////////////////////////////////////////////////////////////////////////////
  13. // En pratique: //
  14. // Les aspirateurs de site demandent un très grand nombre de pages dans des //
  15. // intervalles de temps très court provoquant un surcharge du serveur web, //
  16. // un gène des utilisateurs légitimes et une consommation de bande passante //
  17. // importante. //
  18. // Ce script consomme lui aussi des ressources mais permet d'éviter le pic //
  19. // de ressources généré par un aspirateur. Il comporte 3 requetes SQL et une //
  20. // trentaine de lignes de code. //
  21. /////////////////////////////////////////////////////////////////////////////////////
  22. // Principe de fonctionnement: //
  23. // Le nombre de page demandées par IP et par minute est enregistrés. Si //
  24. // une IP demande un nombre de pages php trop important, l'IP est interdite //
  25. // et le script retourne le message "IP interdite pour abus" //
  26. // //
  27. // Il n'est pas basé sur les user agent car les aspirateurs permettent de //
  28. // les modifer sans difficulté. //
  29. // //
  30. // Un htaccess bloquant les agents connus ne peut qu'aider. //
  31. // //
  32. // Il ne bloque pas les robots comme Googlebot ou Scooter, car les moteurs //
  33. // de recherche étalent les acès à une site dans le temps. //
  34. // //
  35. // Un aspirateur va commencer par aspirer la 1ère page de votre site, puis //
  36. // de plus en plus au fur et à mesure qu'il découvrira des nouvelles url. //
  37. // Il demandera à partir de ce moment plusieurs pages simultanément. //
  38. // Au moment ou le script l'aura repéré, l'aspirateur ne trouvera plus de //
  39. // nouvelles url. Il terminera l'aspiration des URL qu'il aura codécouverte //
  40. // mais aspirera des pages avec le message d'erreur. L'aspiration se //
  41. // poursuivra donc quelques minutes encore. //
  42. // //
  43. // Au final l'utilisateur de l'aspirateur n'aura que les 1ères page du site //
  44. // et très rapidement tombera sur des pages blanches //
  45. /////////////////////////////////////////////////////////////////////////////////////
  46. // Résultats: //
  47. // Ce script a bloqué les aspirations réalisées avec //
  48. // HTTrack, Memoweb, Offline explorer, Teleport //
  49. // lors de tests menés avec les participants de la liste bar d'ovh //
  50. // que je remercie au passage. :-) //
  51. /////////////////////////////////////////////////////////////////////////////////////
  52. // Contre-indications: //
  53. // Si votre serveur est "lent" - met plus de quelques secondes a afficher //
  54. // les pages PHP - le script ne sert à rien, ne l'installer pas!! //
  55. /////////////////////////////////////////////////////////////////////////////////////
  56. // Tout commentaire/idée d'amélioration/optimisation sont les bienvenus !!!! //
  57. // Si vous utilisez ce script, prévenez moi :o) //
  58. /////////////////////////////////////////////////////////////////////////////////////
  59.  
  60. // Installation:
  61.  
  62. // 1 - Renseigner les paramètres de votre base de données en créeant le fichier config_base.php
  63. // ou décommenter les 4 lignes suivantes et supprimer la ligne: 82 - require("config_base.php");
  64.  
  65. //$dbhost = "localhost";
  66. //$dbuname = "root";
  67. //$dbpass = "";
  68. //$dbname = "base1";
  69.  
  70. // 2 - Créer les tables sql 'ip' et 'ip_bl'. Le code sql se trouve dans le fichier trace_ip.sql
  71.  
  72. // 3 - Configurer la ligne 129 - mail(...) avec vos paramètres
  73. // Cette ligne envoie un mail en cas de bloquage d'une IP
  74. // avec les paramètres de la connexion
  75.  
  76. // 4 - Installer ce script au début de toutes vos pages php
  77. // require ("trace_ip.php");
  78.  
  79. // 5 - Effectuer éventuellement des tests sur une partie de VOTRE site pour
  80. // affiner la limite de 25 pages/minute (ligne 120).
  81.  
  82. require("config_base.php");
  83.  
  84. $Vcpt = 0;
  85. $Vdate = date("Y/m/d H:i");
  86. $Vua = $HTTP_SERVER_VARS["HTTP_USER_AGENT"];
  87. $Vip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
  88.  
  89. $dbic = mysql_connect($dbhost,$dbuname,$dbpass);
  90. mysql_select_db($dbname);
  91.  
  92. if ($dbic <> 0)
  93. {
  94. // clean up old IP
  95. mysql_query("DELETE FROM ip WHERE date <> '$Vdate'");
  96.  
  97. // chercher si le visiteur est interdit
  98. $res = mysql_query("SELECT ip FROM ip_bl WHERE ip='$Vip'");
  99. while(list($ip) = mysql_fetch_row($res))
  100. {
  101. // Visiteur trouvé dans les IP interdites
  102. mysql_free_result($res);
  103. mysql_close($dbic);
  104. die("IP interdite pour abus.");
  105. }
  106. mysql_free_result($res);
  107.  
  108. // chercher si le visiteur est déjà passé
  109. $res = mysql_query("SELECT id, ip, date, cpt FROM ip WHERE ip='$Vip'");
  110. while(list($id, $ip, $date, $cpt) = mysql_fetch_row($res)) $Vcpt = $cpt;
  111. mysql_free_result($res);
  112.  
  113. if ($Vcpt == 0) mysql_query("INSERT into ip (id, ua, ip, date, cpt) values ('', '$Vua', '$Vip', '$Vdate', '1')");
  114. else
  115. {
  116. // Visiteur ayant déjà chargé des pages dans la même minute ==> +1 sur le compteur
  117. mysql_query("UPDATE ip SET cpt=cpt+1 WHERE ip='$Vip'");
  118.  
  119. // si limite atteinte (25 pages php/min) ajouter dans la table des ip interdites.
  120. if ($Vcpt >= 25 )
  121. {
  122. mysql_query("INSERT into ip_bl (id, ua, ip, date, cpt) values ('', '$Vua', '$Vip', '$Vdate', '$Vcpt')");
  123.  
  124. $msg = "HTTP_SERVER_VARS:\n" ;
  125. while (list ($key, $val) = each ($HTTP_SERVER_VARS)) $msg .= "$key => $val\n";
  126. $msg = addslashes($msg);
  127. eval("\$msg = \"$msg\";");
  128. $msg = stripslashes($msg);
  129. mail ("votre_mail@votre_domaine.tld", "[IP Interdite] $Vip - $Vdate", $msg, "From: banmaster@votre_domaine.tdl");
  130. }
  131. }
  132. mysql_close($dbic);
  133. }
  134. ?>
  135.  
  136.  
  137. Et la base de donnée :
  138.  
  139. #
  140. # Structure de la table `ip`
  141. #
  142.  
  143. CREATE TABLE ip (
  144. id int(11) NOT NULL auto_increment,
  145. ua char(100) NOT NULL default '',
  146. ip char(50) NOT NULL default '',
  147. date char(20) NOT NULL default '',
  148. cpt int(11) NOT NULL default '0',
  149. PRIMARY KEY (id),
  150. KEY ip (ip),
  151. KEY date (date)
  152. ) TYPE=MyISAM;
  153.  
  154. #
  155. # Structure de la table `ip_bl`
  156. #
  157.  
  158. CREATE TABLE ip_bl (
  159. id int(11) NOT NULL auto_increment,
  160. ua char(100) NOT NULL default '',
  161. ip char(50) NOT NULL default '',
  162. date char(20) NOT NULL default '',
  163. cpt int(11) NOT NULL default '0',
  164. PRIMARY KEY (id),
  165. KEY ip (ip)
  166. ) TYPE=MyISAM;





krivos a dit :
Bonjour,
depuis un certain temps quelqun avec une ip changeante flood ma chat box ( vous allez me dire enleve ta chat box ... ba non po envi ^^ ) bRef est il possible de le ban de mon site ? mm avec son ip changeante ?

PS: si possible une explication précise parceque je ne m y connais pas du tout dans ce domaine de ban ...

Mon index est en PhP.

MERCI :) 

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS