Détecter les robots sur une page

Répondre
Amery
le 05/02/2008 à 14:59
Amery
Bonjour,

comme sur ce site, j'affiche le nombre de visiteur(s) (sur mon site, il y a rarement de "s" à visiteur... smiley ) qui sont actuellemet sur le site.

Pour éviter d'afficher comme visiteur les robots qui sont de passage sur mon site, j'ai une table qui contient plus de 4'000 adresses IP. A chaque lecture d'une page, je vérifie si l'adresse IP est celle d'un robot ou non.

C'est fastidieux... Je dois sans cesse actualiser ma table et rajouter à la main de nouvelles adresses IP! smiley .

Y a-t-il un moyen plus simple sans devoir passer par une table?

Merci,
Amery
i M@N
le 05/02/2008 à 15:59
i M@N
Hello.

Une solution un peu crasseuse mais qui fonctionne bien : tu appeles ton script PHP dans une balise image puis affiches ton <img src="script.php" /> en javascript (document.write etc ...)
Tous ce qui est bot comme google, yahoo toussa ne seront pas comptés (ils n'utilisent pas javascript et n'affichent pas les images).
ça marche aussi en appelant ton script dans une balise <img src="script.php" /> en dur en html mais si en plus tu écris ta balise via javascrpit c'est encore plus efficace.

Mes 0.20€

@+...
One Love, One Heart, One Unity.
LupusMic
le 06/02/2008 à 05:38
LupusMic
Une méthode moins dégueulasse serait de vérifier le Useragent du client HTTP. Ça impose d'avoir une liste quelque part, certes.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Amery
le 06/02/2008 à 09:35
Amery
Merci pour vos réponses.

Et comment ça fonctionne le User-Agent? Qu'est-ce que je dois tester?
Keika
le 06/02/2008 à 12:39
Keika
y'a pas toujours ecrit "crawl" dans les user-agent des robots ?
Le PHP --> C'est dur !
guppy71
le 11/02/2008 à 16:45
guppy71
Bonjour,
moi j'utilise ces listes une pour les robots et l'autre pour les aspirateurs

//détection des robots et aspirateurs
//pour les robots
$UA=$_SERVER["HTTP_USER_AGENT"];
$brow = strtolower($UA);//en minuscules pour toutes les versions
$bots = array ("antibot","appie1.1","archive","ask","askjeeves","baiduspider","converacrawler","deepIndex","dloader","exabot","fast","fluffy","gigabot","girafabot","google","google adsence","googlebot","googlebot-image","grub.org","henrilerobotmirago","heritrix","holmes","httrack","ia_archiver","ichiro","inktomi slurp","java","larbin","lwp-trivial","mediapartners-google","mj12bot","msnbot","msnbot-media","msiecrawler","msrbot","netresearchserver","nimblecrawler","nutch","nutchcvs","openbot","openfind","picsearch","pompos","psbot","python-urllib","sbider","seekbot","scooter","shinchakubin","slurp","spider","stackramber","surveybot","szukacz","teoma","voila","voilabot","voyager","webcrawler","xenu link sleuth","yandex","yahoo","yahoo!","yahoo-mmcrawler","yahooseeker","zyborg");//on ajoute ici les noms des autres robots en minuscules
$n=0;$robotstat="vide";$robot="";


aspirateurs

//elimination des aspirateurs
$bots = array ("curl","^-?$ ","advanced\ email\ extractor","acrobat","almaden","@nonymouse","art-online","cherrypicker","crescent\ internet\ toolpack","directupdate","download\ accelerator","ecatch","extense","emailcollector","emailwolf","extractorpro","fetch","api request","flashget","frontpage","go!zilla","http agent","httpconnect","httrack","indy","library","ipiumbot laurion(dot)com","kapere","libwww-perl","microsoft control","minibot(naverrobot)","nicerspro","npbot","offline explorer","offline navigator","program shareware","quepasacreep","sitemapper","star downloader","surveybot","teleport pro","telesoft","turingos","turnitinbot","vobsub","webbandit","webcapture","webcollage","webcopier","webdav","webemailextractor","webreaper","websaver","webstripper","webzip","wget","wysigot","zeus.*webster","zeus","^xxx"); //on ajoute ici les noms des autres aspirateur en minuscules
Guppy71
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours