Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Anti aspirateur: ne pas bloquer Google

Aller à la page 1, 2, 3  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
ajax
WRInaute impliqué
WRInaute impliqué

Inscrit le: 20 Mar 2006
Messages: 292

URL permanente de ce messagePosté le : Dim Juin 25, 2006 20:08    Sujet du message: Anti aspirateur: ne pas bloquer Google

Bonjour
J'ai trouvé sur wri ce bout de code qui de manière classique compte les IP et les bloque si les connexions sont trop nombreuse, mais qui normalement permet à Google d'éviter d'être bloqué.

Ici on peut voir que Googlebot/2.1 n'est pas bloqué, mais je ne sais pas comment modifier légèrement cette ligne pour y ajouter Mediapartners-Google/2.1.

---------------------------

Code:
function googlebot($agent) {

ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

$nomnav = strtoupper($tab[1]);

if ($nomnav == "Googlebot/2.1") { $rel = "1"; }

return($rel);

}

$refe = googlebot($HTTP_USER_AGENT);

if ($refe == "1") { $Max = 500; } else { $Max = 35; }
 
rebirth
WRInaute passionné
WRInaute passionné

Inscrit le: 18 Avr 2004
Messages: 906
Localisation: Paris, France

URL permanente de ce messagePosté le : Dim Juin 25, 2006 20:15    Sujet du message: Anti aspirateur: ne pas bloquer Google

if ($nomnav == "Googlebot/2.1" || $nomnav == "CeQueTuVeuxMettre") { $rel = "1"; }
 
rebirth
Zim'
WRInaute passionné
WRInaute passionné

Inscrit le: 27 Avr 2006
Messages: 804
Localisation: Euh... chez moi nulle part pour l'instant :-(

URL permanente de ce messagePosté le : Dim Juin 25, 2006 20:16    Sujet du message: Anti aspirateur: ne pas bloquer Google

rajouter ceci peut etre:

if ($nomnav == "Mediapartners-Google/2.1") { $rel = "1"; }


posté en retard, son code est mieux Smile mais le miens fonctionne aussi
 
rebirth
ajax
WRInaute impliqué
WRInaute impliqué

Inscrit le: 20 Mar 2006
Messages: 292

URL permanente de ce messagePosté le : Dim Juin 25, 2006 20:30    Sujet du message: Anti aspirateur: ne pas bloquer Google

Merci, je teste cela de suite.
 
rebirth
Albert1
WRInaute passionné
WRInaute passionné

Inscrit le: 23 Aoû 2005
Messages: 935
Localisation: Partout & Nulle part

URL permanente de ce messagePosté le : Dim Juin 25, 2006 20:44    Sujet du message: Anti aspirateur: ne pas bloquer Google

et comme ça si notre ami qui utilise Httrack spoofe son User Agent il peut commettre ses méfaits en toutes tranquillité !

essaie donc Httrack, tu verras avec quelle facilité tu peux lui attribuer l'User Agent de ton choix ...
 
rebirth
ajax
WRInaute impliqué
WRInaute impliqué

Inscrit le: 20 Mar 2006
Messages: 292

URL permanente de ce messagePosté le : Dim Juin 25, 2006 21:12    Sujet du message: Anti aspirateur: ne pas bloquer Google

Désolé, je n'ai pas de solution parfaite.
 
rebirth
achaternet
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 11 Fév 2003
Messages: 247
Localisation: France

URL permanente de ce messagePosté le : Dim Juin 25, 2006 21:27    Sujet du message: Anti aspirateur: ne pas bloquer Google

J ai enfin trouvé la solution ultime, radicale, efficace, et qui ne bloque pas les bots et bloque n importe quel aspirateur!

Divers scripts testés, mais toujours des inconveniants.
Mais surtout, si l aspi ouvre de nombreux pages simultanées, le script est OUT, et il continue le pompage du reste du site Sad

J ai créé moi meme un script qui bloque les bloques, et ca fonctionne du tonnerre.

Script en place depuis plus d un an sur un de mes sites et nickel.

Le projet encore en beta:

http://www.anti-aspirateur.com/

Concretement, je souhaite proteger une partie de mon code, mais vous faire profiter les webmaster de cette protection.

Pour l instant, cela ne fonctionne pas encore parfaitement pour vous autres, mais bientot operationnelle.

Arrow Sinon, je defis qui souhaite tenter d aspirer 30 pages rapidements, par exemple, depuis http://www.anti-aspirateur.com/test_aspi.php

faite vous passer pour qui vous voulez... Laughing

Je vous tiendrez au courant, la communauté wri de la finalisation de ce projet Wink
 
achaternet Visiter le site web du posteur
ajax
WRInaute impliqué
WRInaute impliqué

Inscrit le: 20 Mar 2006
Messages: 292

URL permanente de ce messagePosté le : Dim Juin 25, 2006 21:41    Sujet du message: Anti aspirateur: ne pas bloquer Google

le code serait le bienvenu
 
achaternet Visiter le site web du posteur
achaternet
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 11 Fév 2003
Messages: 247
Localisation: France

URL permanente de ce messagePosté le : Dim Juin 25, 2006 22:02    Sujet du message: Anti aspirateur: ne pas bloquer Google

Citation:
84.98.*.*; 25/06/2006 22:11:48;
http://www.anti-aspirateur.com/test_aspi.php?suiv=4
82.254.*.*; 25/06/2006 21:59:29;
http://www.anti-aspirateur.com/test_aspi.php?suiv=5
213.166.*.*; 25/06/2006 21:33:14;
http://www.anti-aspirateur.com/test_aspi.php?suiv=3


Ils se reconnaitront Wink


Dernière édition par achaternet le Dim Juin 25, 2006 22:31; édité 1 fois
 
achaternet Visiter le site web du posteur
Albert1
WRInaute passionné
WRInaute passionné

Inscrit le: 23 Aoû 2005
Messages: 935
Localisation: Partout & Nulle part

URL permanente de ce messagePosté le : Dim Juin 25, 2006 22:24    Sujet du message: Anti aspirateur: ne pas bloquer Google

tu prétends offrir un test et ensuite
tu affiches des adresses IP personnelles complètes et en clair (voir CNIL) sur la place publique !

tu es un bien étrange spécimen ...
 
achaternet Visiter le site web du posteur
achaternet
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 11 Fév 2003
Messages: 247
Localisation: France

URL permanente de ce messagePosté le : Dim Juin 25, 2006 22:33    Sujet du message: Anti aspirateur: ne pas bloquer Google

Albert1 a écrit:
tu prétends offrir un test ...


Oups Embarassed , c etait en speed, on m attendait pour manger
 
achaternet Visiter le site web du posteur
ajax
WRInaute impliqué
WRInaute impliqué

Inscrit le: 20 Mar 2006
Messages: 292

URL permanente de ce messagePosté le : Lun Juin 26, 2006 11:40    Sujet du message: Anti aspirateur: ne pas bloquer Google

rebirth a écrit:
if ($nomnav == "Googlebot/2.1" || $nomnav == "CeQueTuVeuxMettre") { $rel = "1"; }


Je me permets de relancer. J'ai l'impression qu'il y a une erreur dans la condition car elle ne semble pas être prise en compte.
En gros, ce que je souhaite, c'est une valeur OU.

Je me demande aussi si à la place de Googlebot/2.1, il ne faut pas préciser: Googlebot/2.1 (+http://www.google.com/bot.html)
car je bloque toujours cet useragent: HTTP_USER_AGENT => Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Merci

Je mets tout le script (pris dans ce forum) si cela peut intéresser

Code:
<?php

$to = xxx

$from = "xxx@xxx.com";

$dbhost = "localhost";
$dbuname = "xxx";
$dbpass = "xxx";
$dbname = "xxx";

function googlebot($agent) {

ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

$nomnav = strtoupper($tab[1]);

if ($nomnav == "Googlebot/2.1" || $nomnav == "Mediapartners-Google/2.1") { $rel = "1"; }

return($rel);

}

$refe = googlebot($HTTP_USER_AGENT);

if ($refe == "1") { $Max = 200; } else { $Max = 25; }


$Vcpt  = 0;
$Vdate = date("Y/m/d H:i");
$Vua   = $HTTP_SERVER_VARS["HTTP_USER_AGENT"];
$Vip   = $HTTP_SERVER_VARS["REMOTE_ADDR"];

$Realtime = time();
$Limitime = $Realtime + 1200;

$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'");
   mysql_query("DELETE FROM ip_bl WHERE ltime < '$Realtime'");

   // chercher si le visiteur est interdit
   $res = mysql_query("SELECT ip FROM ip_bl WHERE ip='$Vip' AND ltime > '$Realtime' ");
   while(list($ip) = mysql_fetch_row($res))
   {
      // Visiteur trouvé dans les IP interdites
           mysql_free_result($res);     
           mysql_close($dbic);
         die("Vous consultez trop rapidement les pages du site. Votre adresse IP est bloquée durant 20mn.");

header("HTTP/1.0 404 Not Found");

exit;
   
}
   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 >= $Max )
      {
         mysql_query("INSERT into ip_bl (id, ua, ip, date, cpt, ltime) values ('', '$Vua', '$Vip', '$Vdate', '$Vcpt', '$Limitime')");

         $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 ("xxx@xxx.com", "[IP Interdite] $Vip - $Vdate", $msg, "From: banmaster@votre_domaine.tdl");
      }
   }

$VVcpt = round(((round (($Vcpt / ($Max + 1)) * 100)) / 100) * 100);

$Acpt = $Vcpt + 1;

   mysql_close($dbic);
}
?>
 
achaternet Visiter le site web du posteur
achaternet
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 11 Fév 2003
Messages: 247
Localisation: France

URL permanente de ce messagePosté le : Lun Juin 26, 2006 18:53    Sujet du message: Anti aspirateur: ne pas bloquer Google

Je ne suis pas un expert en expression reguliere, mais je vais essayer de te faire avancer

Les 3 agents de google:

Googlebot/2.1 (+http://www.google.com/bot.html)
Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)
Mediapartners-Google/2.1


$nomnav == "Googlebot/2.1" || $nomnav == "Mediapartners-Google/2.1")

L expression reguliere:

ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

teste la presence de Googlebot/2.1

Du coup, le tableau qui en ressort ne donne pas le meme resultat du positionnement de gg2.1 et ainsi LE TEST EST DIFFERENT.

$nomnav = strtoupper($tab[1]);

Oui, mais selon le cas. Des fois, ca peut etre $tab[0] .

Essaie de tester non pas avec $tab[1], mais $tab[0] ,$tab[1] et $tab[2] au cas ou.

a l arrache là, genre:

$nomnav = strtoupper($tab[0]);
if ($nomnav == "Googlebot/2.1") { $rel = "1"; }
$nomnav = strtoupper($tab[1]);
if ($nomnav == "Googlebot/2.1") { $rel = "1"; }
$nomnav = strtoupper($tab[2]);
if ($nomnav == "Googlebot/2.1") { $rel = "1"; }


J espere t avoir fait progressé Wink
 
achaternet Visiter le site web du posteur
ajax
WRInaute impliqué
WRInaute impliqué

Inscrit le: 20 Mar 2006
Messages: 292

URL permanente de ce messagePosté le : Mar Juin 27, 2006 19:04    Sujet du message: Anti aspirateur: ne pas bloquer Google

Merci

Autrement dit:

function googlebot($agent) {

ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

$nomnav = strtoupper($tab[0]);
if ($nomnav == "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)") { $rel = "1"; }
$nomnav = strtoupper($tab[1]);
if ($nomnav == "Mediapartners-Google/2.1") { $rel = "1"; }
$nomnav = strtoupper($tab[2]);
if ($nomnav == "Googlebot/2.1 (+http://www.google.com/bot.html) ") { $rel = "1"; }

return($rel);

}
 
achaternet Visiter le site web du posteur
achaternet
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 11 Fév 2003
Messages: 247
Localisation: France

URL permanente de ce messagePosté le : Mar Juin 27, 2006 23:05    Sujet du message: Anti aspirateur: ne pas bloquer Google

Non, je ne pense pas:

ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

Pour traduire:

On repere tout ce qui commence par:

- des lettres minuscules ou majuscule suivi
- d'1 slash suivi d'1 ou plusieurs chiffres suivi
- d 1 point suivi d'1 ou plusieurs chiffres et enfin suivi
- du reste ( pour simplifier)


Ainsi l expression "Googlebot/2.1" correspond a cela et c est ce que l on cherche.

Enfin, avec la fonction ereg, il distingue l expression cherchée du reste.

Regarde en detail http://fr.php.net/manual/fr/function.ereg.php

Apres d en deduira sur quel indice de ta table tester.

Sinon, toujours pas, pas grave, il suffit de te faire une page test

... et de tester

Plus precisement:

$agent="juste que c est pas google";
ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

// Boucle foreach pour afficher tab[] et l indice correspondant.

$agent="Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)";
ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

// Boucle foreach pour afficher tab[] et l indice correspondant.


$agent="Mediapartners-Google/2.1";
ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

// Boucle foreach pour afficher tab[] et l indice correspondant.

$agent="Googlebot/2.1 (+http://www.google.com/bot.html) ";
ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $agent, $tab);

// Boucle foreach pour afficher tab[] et l indice correspondant.



De la, direct, en fonction des agents et des indices resultant, tu saura quoi tester.

Ps: Pour foreach http://fr.php.net/manual/fr/control-structures.foreach.php
 
achaternet Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 3 - Aller à la page 1, 2, 3  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort