qui pourrait m'expliquer comment installer ce script php anti aspirateurs dont voici l'adresse, ainsi que les references:
(soyez clairs, simples et precis, je comprends vite, mais il faut m'expliquer longtemps


http://www.1001bd.com/stop_aspirateurs/ le fichier s'appelle trace_ip.zip, et est reference "version du 15-01-2003"
mon hebergeur accepte php et mysql
mes pages sont xhtml
voici les codes:
Code : Tout sélectionner
<?php
/////////////////////////////////////////////////////////////////////////////////////
// Script bloquant les aspirateurs de site - v 0.2 - 15/01/2003 //
// Info: Renardrouge@rocketmail.com - http://www.1001bd.com //
/////////////////////////////////////////////////////////////////////////////////////
// Création: Janvier 2003 //
// Ce script a été créer suite à une conversation stérile avec le //
// developpeur d'un aspirateur de site. Il refusait de reconnaitre les //
// dégats que peut entrainer son soft quand il est utilisé à tort //
// et à travers, ou contre l'avis des webmasters, en passant outre les //
// directives du robots.txt //
/////////////////////////////////////////////////////////////////////////////////////
// En pratique: //
// Les aspirateurs de site demandent un très grand nombre de pages dans des //
// intervalles de temps très court provoquant un surcharge du serveur web, //
// un gène des utilisateurs légitimes et une consommation de bande passante //
// importante. //
// Ce script consomme lui aussi des ressources mais permet d'éviter le pic //
// de ressources généré par un aspirateur. Il comporte 3 requetes SQL et une //
// trentaine de lignes de code. //
/////////////////////////////////////////////////////////////////////////////////////
// Principe de fonctionnement: //
// Le nombre de page demandées par IP et par minute est enregistrés. Si //
// une IP demande un nombre de pages php trop important, l'IP est interdite //
// et le script retourne le message "IP interdite pour abus" //
// //
// Il n'est pas basé sur les user agent car les aspirateurs permettent de //
// les modifer sans difficulté. //
// //
// Un htaccess bloquant les agents connus ne peut qu'aider. //
// //
// Il ne bloque pas les robots comme Googlebot ou Scooter, car les moteurs //
// de recherche étalent les acès à une site dans le temps. //
// //
// Un aspirateur va commencer par aspirer la 1ère page de votre site, puis //
// de plus en plus au fur et à mesure qu'il découvrira des nouvelles url. //
// Il demandera à partir de ce moment plusieurs pages simultanément. //
// Au moment ou le script l'aura repéré, l'aspirateur ne trouvera plus de //
// nouvelles url. Il terminera l'aspiration des URL qu'il aura codécouverte //
// mais aspirera des pages avec le message d'erreur. L'aspiration se //
// poursuivra donc quelques minutes encore. //
// //
// Au final l'utilisateur de l'aspirateur n'aura que les 1ères page du site //
// et très rapidement tombera sur des pages blanches //
/////////////////////////////////////////////////////////////////////////////////////
// Résultats: //
// Ce script a bloqué les aspirations réalisées avec //
// HTTrack, Memoweb, Offline explorer, Teleport //
// lors de tests menés avec les participants de la liste bar d'ovh //
// que je remercie au passage. :-) //
/////////////////////////////////////////////////////////////////////////////////////
// Contre-indications: //
// Si votre serveur est "lent" - met plus de quelques secondes a afficher //
// les pages PHP - le script ne sert à rien, ne l'installer pas!! //
/////////////////////////////////////////////////////////////////////////////////////
// Tout commentaire/idée d'amélioration/optimisation sont les bienvenus !!!! //
// Si vous utilisez ce script, prévenez moi :o) //
/////////////////////////////////////////////////////////////////////////////////////
// Installation:
// 1 - Renseigner les paramètres de votre base de données en créeant le fichier config_base.php
// ou décommenter les 4 lignes suivantes et supprimer la ligne: 82 - require("config_base.php");
//$dbhost = "localhost";
//$dbuname = "root";
//$dbpass = "";
//$dbname = "base1";
// 2 - Créer les tables sql 'ip' et 'ip_bl'. Le code sql se trouve dans le fichier trace_ip.sql
// 3 - Configurer la ligne 129 - mail(...) avec vos paramètres
// Cette ligne envoie un mail en cas de bloquage d'une IP
// avec les paramètres de la connexion
// 4 - Installer ce script au début de toutes vos pages php
// require ("trace_ip.php");
// 5 - Effectuer éventuellement des tests sur une partie de VOTRE site pour
// affiner la limite de 25 pages/minute (ligne 120).
require("config_base.php");
$Vcpt = 0;
$Vdate = date("Y/m/d H:i");
$Vua = $HTTP_SERVER_VARS["HTTP_USER_AGENT"];
$Vip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
$dbic = mysql_connect($dbhost,$dbuname,$dbpass);
mysql_select_db($dbname);
if ($dbic <> 0)
{
// clean up old IP
mysql_query("DELETE FROM ip WHERE date <> '$Vdate'");
// chercher si le visiteur est interdit
$res = mysql_query("SELECT ip FROM ip_bl WHERE ip='$Vip'");
while(list($ip) = mysql_fetch_row($res))
{
// Visiteur trouvé dans les IP interdites
mysql_free_result($res);
mysql_close($dbic);
die("IP interdite pour abus.");
}
mysql_free_result($res);
// chercher si le visiteur est déjà passé
$res = mysql_query("SELECT id, ip, date, cpt FROM ip WHERE ip='$Vip'");
while(list($id, $ip, $date, $cpt) = mysql_fetch_row($res)) $Vcpt = $cpt;
mysql_free_result($res);
if ($Vcpt == 0) mysql_query("INSERT into ip (id, ua, ip, date, cpt) values ('', '$Vua', '$Vip', '$Vdate', '1')");
else
{
// Visiteur ayant déjà chargé des pages dans la même minute ==> +1 sur le compteur
mysql_query("UPDATE ip SET cpt=cpt+1 WHERE ip='$Vip'");
// si limite atteinte (25 pages php/min) ajouter dans la table des ip interdites.
if ($Vcpt >= 25 )
{
mysql_query("INSERT into ip_bl (id, ua, ip, date, cpt) values ('', '$Vua', '$Vip', '$Vdate', '$Vcpt')");
$msg = "HTTP_SERVER_VARS:\n" ;
while (list ($key, $val) = each ($HTTP_SERVER_VARS)) $msg .= "$key => $val\n";
$msg = addslashes($msg);
eval("\$msg = \"$msg\";");
$msg = stripslashes($msg);
mail ("gringojack@aol.com", "[IP Interdite] $Vip - $Vdate", $msg, "From: banmaster@votre_domaine.tdl");
}
}
mysql_close($dbic);
}
?>
Code : Tout sélectionner
#
# Structure de la table `ip`
#
CREATE TABLE ip (
id int(11) NOT NULL auto_increment,
ua char(100) NOT NULL default '',
ip char(50) NOT NULL default '',
date char(20) NOT NULL default '',
cpt int(11) NOT NULL default '0',
PRIMARY KEY (id),
KEY ip (ip),
KEY date (date)
) TYPE=MyISAM;
#
# Structure de la table `ip_bl`
#
CREATE TABLE ip_bl (
id int(11) NOT NULL auto_increment,
ua char(100) NOT NULL default '',
ip char(50) NOT NULL default '',
date char(20) NOT NULL default '',
cpt int(11) NOT NULL default '0',
PRIMARY KEY (id),
KEY ip (ip)
) TYPE=MyISAM;