Détection des bots

WRInaute impliqué
Bonjours j'aimerai détecté les bots sur mon forum, pour cela j'ai fais un petit code. Je sais pas si ca vous parrait correct :

Code:
$bot ="<br>&nbsp;&nbsp;&nbsp;Bots sur le forum : "; 

for($i=0; $i<mysql_num_rows($countinvites); $i++) {
	
	switch (getenv("HTTP_USER_AGENT" )) {
	case 'Googlebot': echo $bot.'| <b><span class="rose2">GoogleBot</span></b> | '; break;
	case 'Yahoo!': echo $bot.'| <b><span class="rose2">Yahoo!</span></b> | '; break;
	case 'AskJeeves': echo $bot.'| <b><span class="rose2">AskJeeves</span></b> | '; break;
	case 'MSNBot': echo $bot.'| <b><span class="rose2">MSNBot</span></b> | '; break;
	}
}

Pensez vous que ca peut fonctionner?
 
WRInaute accro
sff a dit:
Bonjours j'aimerai détecté les bots sur mon forum, pour cela j'ai fais un petit code. Je sais pas si ca vous parrait correct :

Code:
$bot ="<br>&nbsp;&nbsp;&nbsp;Bots sur le forum : "; 

for($i=0; $i<mysql_num_rows($countinvites); $i++) {
	
	switch (getenv("HTTP_USER_AGENT" )) {
	case 'Googlebot': echo $bot.'| <b><span class="rose2">GoogleBot</span></b> | '; break;
	case 'Yahoo!': echo $bot.'| <b><span class="rose2">Yahoo!</span></b> | '; break;
	case 'AskJeeves': echo $bot.'| <b><span class="rose2">AskJeeves</span></b> | '; break;
	case 'MSNBot': echo $bot.'| <b><span class="rose2">MSNBot</span></b> | '; break;
	}
}

Pensez vous que ca peut fonctionner?

Non... Déjà, le User-Agent n'est pas aussi court que ça, il faut que tu utilises des regexps pour voir si le user agent *contient* quelque chose qui te permet de reconnaître le robot, pas strictement égal (même en utilisant les user-agents complets tu t'exposes au problème des nouvelles versions etc.).

Ensuite la question est de savoir si tu veux identifier des robots particuliers, ou tous les robots en général. Dans le second cas, la meilleure méthode est de faire en sorte que ton robots.txt soit géré par un script dynamique qui va noter "qui" le consulte (UA et/ou IP), ensuite tu peux comparer à la liste que tu construits comme ça (via un BDD).

Dans le premier cas, ben bon courage pour recenser tout le monde!

Jacques.
 
Discussions similaires
Haut