Cette page utilise des feuilles de style en cascade. Si vous arrivez à lire ce message, c'est que CSS ou javascript ne sont pas activés dans les options de votre navigateur.
Les menus ne seront sans doute pas affichés.
L'affichage de la page sera donc différent de ce qui est prévu.
Visitez plutôt l'autre version du site.

Pièges à robots

Piéger ? | Capturer ? | Identifier | Robots | Détecter | Bloquer | Autoriser & Bloquer | Pistes...

Quand un auteur ne souhaite pas que son site soit copié ou indexé par les moteurs de recherche, il a de nombreux moyens à sa disposition :

  1. Une balise meta comme <meta name="robots" content="noindex,nofollow"> (peu efficace).
  2. Un fichier robots.txt qui indique les parties du site à ne pas explorer (peu efficace).
  3. .htaccess pour exclure les robots connus ou identifiés (très efficace).
  4. Une applet java, un peu d'html, un script en php, javascript et bien d'autres langages (assez à très efficace).
Ces méthodes sont détaillées en anglais aux adresses suivantes : dans la documentation d'Httrack (abuse FAQ for webmasters).

et aussi www.webmasterworld.com (recherchez "spider trap" / "Blocking Badly Behaved Bots" ou consultez www.webmasterworld.com/forum24/ ou www.webmasterworld.com/forum88/ ou www.webmasterworld.com/forum92/ ).

Piéger ?

Tous ces pièges risquent d'empêcher le référencement des pages par les moteurs de recherche, de rendre la consultation du site plus difficile et de décourager les utilisateurs.

On peut le comprendre quand il s'agit de lutter - à juste titre et simplement avec une ligne ou deux de javascript - contre les "spam harvesters", "email grabbers", "email collectors", "spambots", "spamrats" mais il n'est pas toujours justifié de s'attaquer à tous les aspirateurs de site ("spiders", "site copiers", "offline browsers" ...) même s'ils consomment de la bande passante et bloquent ou surchargent certains sites.
Il est vrai que certains hébergeurs font payer en fonction du trafic ou limitent les accès et que des visiteurs sont donc refoulés.
Mais la capture de site peut être effectuée pour de bonnes raisons : ce site a pour objet d'aider ceux qui capturent des sites pour leurs élèves ou parce qu'ils n'ont pas la possibilité de rester connectés ...

Capturer ?

Souvent, après quelque temps, les protections sont retirées : ceux dont les navigateurs ne disposent pas des plugins (Macromedia, java -JRE 6.0-) ou n'interprètent pas javascript sont perdus comme lecteurs ou clients.
Si vous jugez que le site mérite néanmoins d'être copié, demandez à son auteur comment en obtenir une copie consultable hors ligne.
En effet, activer l'option "pas de règles robots.txt" risque de vous interdire l'accès au site, vous faire tomber dans un piège à robot ou vous amener à copier des centaines de pages sans intérêt - pages d'erreur, images, documentations etc -.

Dans tous les cas, repérez les répertoires utiles, dans l'onglet "Limites" limitez le "taux maximal", le "nombre maxi de connexions par seconde" ou limitez le nombre de connexions dans l'onglet "contrôle du flux".
Les exemples de capture 12 et 17 peuvent vous donner une idée de la façon de procéder.

Identifier un robot

Pour une liste des robots qui s'identifient, consultez ces adresses :

Les robots et ce site

Liste des robots qui fréquentent ce site (ici il s'agit la plupart du temps de référencement, méta-moteurs de recherche, vérification de la validité d'un lien vers le site, sondages et contrôles divers -anti-plagiat, noms utilisés, spam...-. Plusieurs de ces robots s'attendent à de l'anglais dans la page d'accueil et ne reviennent donc pas.) :

"1Noonbot search engine" - "50.nu" - "80legs crawler" - "ABACHOBot search engine" - "abcfr_robot search engine" - "Accoona-AI-Agent search engine" - "AcoonBot search engine" - "ActiveBookmark" - "Advanced URL Catalog bookmark manager" - "Advista search engine" - "aiHitBot" - "aipbot search engine" - "alef" - "Aleksika search engine" - "amagit.com search engine" - "Amazonbot crawler" - "Amfibibot search engine" - "Anonymous / Skywalker" - "AnswerBus search engine" - "AntBot search engine" - "antibot crawler" - "appie 1.1 (www.walhello.com) search engine" - "Apple-PubSub RSS monitoring" - "archive.org_bot crawler" - "Argus bookmark managing crawler" - "Art-Online.com 0.9(Beta) crawler" - "Ask Jeeves crawler" - "Asterias crawler" - "atraxbot" - "Baiduspider search engine" - "Bazbot search engine" - "BecomeBot search engine" - "Big Fish %S" - "Biglotron search engine" - "bingbot crawler" - "binlar" - "bitlybot" - "BitSightBot" - "bixolabs  Data Mining" - "BlackMask.Net search engine" - "BlogCorpusCrawler" - "Bloglines RSS monitoring" - "Bluebot crawler" - "BnF" - "bogospider" - "boitho.com-robot search engine" - "Bookdog bookmark manager" - "bot/1.0" - "botmobi search engine" - "BruinBot crawler" - "Butterfly search engine" - "BuzzRankingBot crawler" - "C4PC" - "CacheBot" - "Caliperbot" - "CamontSpider crawler" - "capek crawler" - "Casper Bot Search %Z" - "CatchBot crawler" - "CazoodleBot crawler" - "CCBot crawler" - "ccubee search engine" - "CentiverseBot search engine" - "cfetch" - "Chanceo %S" - "Charlotte search engine" - "Cherchonsbot search engine" - "Cityreview" - "CMS Crawler" - "Combine crawler" - "comBot search engine" - "cometsystems crawler" - "Content Crawler crawler" - "ContextAd Bot" - "Convera  RetrievalWare" - "CorenSearchBot" - "Corpora from the web crawler" - "Cosmix crawler" - "CosmixCrawler search engine" - "Covario crawler" - "Crawl Annu" - "Crawllybot search engine" - "csci_b659  Data Mining" - "CSS/HTML/XTHML  Validator" - "CSSCheck" - "cybercity.dk IE 5.5 Compatible Browser" - "CydralSpider search engine" - "darxi spam / email grabbing" - "DataForSEO Link Bot" - "DataFountains/DMOZ Downloader" - "DAUM Web Robot search engine" - "dcbspider search engine" - "DealGates" - "Declumbot" - "deepak-USC/ISI  spider" - "del.icio.us-thumbnails" - "del.icio.us  bookmark manager link checker" - "DepSpid crawler" - "Diamond search engine" - "Diffbot" - "Directcrawler" - "discobot crawler" - "DLE_Spider spam" - "DMOZ Experiment" - "DNSGroup crawler" - "Domains Project crawler" - "DotBot crawler" - "DTAAgent search engine" - "Dumbot search engine" - "e-SocietyRobot crawler" - "eApolloBot search engine" - "EasyDL/3.04" - "EdisterBot crawler" - "ejupiter.com search engine" - "ellerdale search engine" - "EnaBot crawler" - "envolk search engine" - "ePochta_Extractor spam / email grabbing" - "ETS  translation bot" - "europarchive" - "Exabot crawler" - "Exabot-Thumbnails" - "exactseek-crawler-2.63" - "Exalead NG" - "exooba crawler" - "Ezooms" - "facebookexternalhit" - "Factbot search engine" - "Falconsbot search engine" - "FAST crawler" - "FAST Enterprise Crawler" - "FAST FirstPage retriever" - "fast-search-engine" - "FAST-WebCrawler" - "FAST MetaWeb Crawler" - "FavOrg Link checker" - "favorstarbot Advertising" - "FeedBot" - "FeedBurner" - "FeedFetcher-Google" - "Fetch API Request" - "Filangy bookmark managing crawler" - "Findexa crawler" - "findfiles.net search engine" - "findlinks" - "flatlandbot" - "fleck" - "Flight Deck" - "FlightDeckReports" - "Fluffy (searchhippo) search engine" - "flyindex search engine" - "Focal crawler" - "FollowSite" - "Friend search engine" - "FurlBot search engine" - "Gaisbot/3.0 search engine" - "Galbot crawler" - "Generalbot" - "genevabot search engine" - "geniebot search engine" - "GeoBot" - "Gigabot crawler" - "Gigamega.bot search engine" - "GingerCrawler" - "Girafabot" - "Gnomit crawler" - "GOFORITBOT search engine" - "gold crawler" - "Google Desktop RSS monitoring" - "Google-Site-Verification" - "Google-Sitemaps" - "Googlebot crawler" - "Googlebot-Image" - "Googlebot-Mobile" - "Google Web Preview" - "GPTBot crawler" - "grub search engine" - "grub crawler" - "grub.org" - "gsa-crawler" - "GT::WWW/1." - "gURLChecker Link checker" - "GurujiBot search engine" - "GUSbot" - "GVC-SPIDER" - "Hailoobot search engine" - "Haste" - "hclsreport crawler" - "Helix crawler" - "HenriLeRobotMirago crawler" - "Heritrix crawler" - "hoge" - "Holmes search engine" - "HooWWWer crawler" - "htdig" - "HuaweiSymantecSpider crawler" - "ia_archiver crawler" - "ICC-Crawler crawler" - "ichiro search engine" - "icsbot-0.1" - "IlTrovatore search engine" - "imbot" - "INA dlweb crawler" - "IndoCrew %Z" - "Indy Library  Internet Direct Library for Borland - often spambot" - "InelaBot crawler" - "inet library" - "inktomi Slurp crawler" - "InsiteRobot" - "integromedb.org crawler" - "InternetSeer Connectivity checker" - "Interseek" - "IntranooBot" - "IP*Works Link checker" - "IRLbot crawler" - "iSearch search engine" - "istarthere search engine" - "IXE Crawler" - "Jakarta Commons" - "Jetbot/1.0 crawler" - "JungleKeyBot search engine" - "Jyxobot search engine" - "KaloogaBot search engine" - "Killou.com search engine" - "KiwiStatus search engine" - "kmccrew Bot Search %Z" - "Knowledge.com search engine" - "knowmore" - "KomodiaBot" - "Lachesis" - "larbin crawler" - "ldspider" - "leak" - "lemurwebcrawler" - "librabot search engine" - "libwww-perl" - "LinguaBot search engine" - "linkaGoGo crawler" - "LinkChecker" - "Link Commander bookmark manager" - "linkdex.com" - "Linkman Link checker" - "Links SQL" - "Link Valet Online Link checker" - "LiteFinder search engine" - "livemark.jp Link checker" - "lmspider crawler" - "Look.com search engine" - "Loopy.fr search engine" - "Loserbot" - "Lsearch/sondeur" - "lwp-request" - "lwp-trivial" - "LWP::Simple" - "MagpieRSS" - "Mail.Ru" - "MaMa CaSpEr %Z" - "MaMa CyBer %Z" - "MapoftheInternet search engine" - "Marvin search engine" - "Me.dium OneRiot crawler" - "Mediapartners-Google" - "Megaglobe search engine" - "Megite  news aggregator" - "MetaGeneratorCrawler" - "Metaspinner search engine" - "MileNSbot search engine" - "Mirago (HenriLeRobot) crawler" - "MJ12bot crawler" - "MLBot" - "MnogoSearch/3.2.11" - "MojeekBot search engine" - "Monrobot crawler" - "MOSBookmarks Link checker" - "mozDex crawler" - "Mozilla/4.0 (compatible; MSIE 6.0)" - "Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0;)" - "Mp3Bot search engine" - "MQbot crawler" - "ms research robot" - "MSIE 4.5 %S" - "MSIE 6.0 (compatible; MSIE 6.0;... %S" - "MSIE 7.01 %S" - "MSMOBOT crawler" - "msnbot crawler" - "MSNPTC  MSN search robot" - "MSR-ISRCCrawler" - "MSRBOT crawler" - "MultiCrawler search engine" - "mxbot" - "MyFamilyBot crawler" - "Nambu" - "NaverBot search engine" - "NaverRobot search engine" - "Nelian Pty Ltd" - "Netcraft survey" - "netEstate crawler" - "NetID Bot Advertising" - "NetResearchServer search engine" - "NetSprint search engine" - "NetWhatCrawler search engine" - "newsg8 RSS monitoring" - "NEWT ActiveX spam / email grabbing" - "NG-Search search engine" - "NG/1.0" - "NG/2.0 crawler" - "NGBot crawler" - "nicebot" - "Nigma search engine" - "NimbleCrawler search engine" - "NjuiceBot" - "Norbert the Spider search engine" - "NoteworthyBot" - "NPBot  NameProtect crawler" - "nrsbot search engine" - "NuSearch Spider search engine" - "Nutch crawler" - "Nutch (Princeton) crawler" - "ObjectsSearch search engine" - "oBot crawler" - "octopodus search engine" - "Octora crawler" - "ODP::/0.01 Link checker" - "ODP entries" - "ODP links test" - "OmniExplorer_Bot search engine" - "onalytica" - "onCHECK" - "OnetSzukaj search engine" - "OOZBOT search engine" - "Openbot search engine" - "OpenindexSpider" - "OpenISearch search engine" - "OpenTaggerBot  social bookmarks" - "OpenX Spider Advertising" - "OrangeBot-Mobile search engine" - "OutfoxBot" - "ozelot" - "page-store" - "Pagebull search engine" - "pagepeeker" - "page_verifier" - "Paleoweb crawler" - "PanopeaBot/1.0 (UCLA CS Dpt.)" - "panopta.com Connectivity checker" - "Pathtraq search engine" - "PEERbot search engine" - "PeerFactor crawler" - "petalbot crawler" - "Pete-Spider crawler" - "pflab" - "PHP/4." - "PHP version tracker web stats" - "PicSpider" - "PipeLine  spider" - "Pita crawler" - "plaNETWORK Bot Search %Z" - "Plukkie search engine" - "PollettSearch crawler" - "polybot crawler" - "Pompos - dir.com crawler" - "Popdexter crawler" - "PostFavorites" - "PostRank" - "Powermarks Link checker" - "PrivacyFinder search engine" - "PROBE! search engine" - "Program Shareware" - "psbot crawler" - "Python-urllib" - "QEAVis" - "QihooBot search engine" - "Qualidator.com Bot" - "quickobot crawler" - "RAMPyBot search engine" - "RankurBot" - "Rapid-Finder search engine" - "Reaper/2.06 search engine" - "RedBot crawler" - "RedCarpet" - "RixBot search engine" - "robotgenius  malware detection?" - "Robozilla/1.0" - "RSSMicro search engine" - "RTGI  Data Mining" - "RufusBot" - "sagool search engine" - "savvybot search engine" - "SBIder crawler" - "schibstedsokbot search engine" - "Scooter search engine" - "ScoutJet search engine" - "Scrubby search engine" - "search.updated.com search engine" - "Search17Bot search engine" - "SearchByUsa search engine" - "SearchIt.Bot search engine" - "SearchWebLinks" - "Seekbot crawler" - "Semager search engine" - "SemrushBot" - "Sensis search engine" - "seocompany crawler" - "SEOENGBot" - "SEOprofiler bot crawler" - "SETOOZBOT search engine" - "SeznamBot" - "ShablastBot search engine" - "Shelob" - "sherlock search engine" - "Shim-Crawler" - "ShrinkTheWeb crawler" - "ShunixBot crawler" - "silk search engine" - "Sindup RSS monitoring" - "SISTRIX crawler" - "SiteBot %S" - "SiteIntel.net Bot" - "Skywalker / Anonymous" - "sledink Bot Search %Z" - "Slurpy Verifier" - "snap.com search engine" - "Snapbot search engine" - "SnapPreviewBot" - "socbay search engine" - "sogou spider" - "sohu-search search engine" - "sohu agent search engine" - "Solomono search engine" - "Sosospider search engine" - "SpeedySpider search engine" - "SpiderLing crawler" - "Spinn3r" - "sproose crawler" - "SpurlBot bookmark managing crawler" - "sSearch Crawler" - "statbot" - "StatusCheckBot Link checker" - "Steeler crawler" - "SuperBot search engine" - "Susie  bookmark manager link checker" - "sygol search engine" - "SynapticWalker spam / email grabbing" - "SynooBot search engine" - "Syntryx ANT Chassis crawler" - "Szukacz/1.5 search engine" - "T-H-U-N-D-E-R-S-T-O-N-E" - "TargetYourNews Link checker" - "Teemer" - "Teoma search engine" - "TerraSpider" - "test" - "TFC" - "Theophrastus" - "Thriceler search engine" - "Thumbnail.CZ robot" - "thumbshots-de-bot" - "TinEye crawler" - "TranSGeniKBot" - "trexmod" - "Tubenowbot Link checker" - "TurnitinBot crawler" - "TutorGigBot crawler" - "Tutorial Crawler" - "TweetmemeBot" - "TwengaBot crawler" - "Twiceler crawler" - "Twisted PageGetter" - "Twitterbot" - "Twitturl" - "TygoBot search engine" - "uberbot crawler" - "UnChaosBot search engine" - "Unicorn  Validator" - "updated search engine" - "Update Profile Bot search engine" - "Updownerbot" - "UptimeAuditor Connectivity checker" - "UptimeBot" - "URLBase bookmark manager" - "Valizbot crawler" - "VDSX.nl search engine" - "VelenPublicWebCrawler" - "versus crawler" - "Visbot search engine" - "VoilaBot crawler" - "Voluniabot" - "Vortex crawler" - "voyager search engine" - "VSE/1.0 crawler" - "W3C-checklink" - "WASALive search engine" - "WebAlta crawler" - "WebarooBot crawler" - "WebCorp search engine" - "webcrawl search engine" - "WebFilter" - "WebIndexer search engine" - "WebRACE/1.1" - "Webscan" - "WebsiteWorth %S" - "wikiwix search engine" - "Willow Internet Crawler" - "Windows-Live-Social-Object-Extractor-Engine" - "WinkBot search engine" - "Winsey search engine" - "WIRE" - "WongBot" - "woorank" - "woriobot search engine" - "WorQmada Link checker" - "Wotbox search engine" - "wpbot crawler" - "wume_crawler" - "www.almaden.ibm.com/cs/crawler" - "www.IsMySiteUp.Net" - "www.pisoc.com search engine" - "Xenu Link checker" - "Xerka  Data Mining" - "xirq search engine" - "XmarksFetch bookmark manager search engine" - "yacybot search engine" - "Yahoo! Slurp crawler" - "Yahoo! Mindset" - "Yahoo-MMCrawler" - "Yahoo-Test crawler" - "YahooSeeker search engine" - "YahooVideoSearch search engine" - "Yandex search engine" - "Yanga search engine" - "yellowJacket Link checker" - "YesupBot" - "Yeti search engine" - "Yooda" - "yoono search engine" - "YottaCars search engine" - "YottaShopping search engine" - "YoudaoBot search engine" - "YRSpider" - "ZeBot search engine" - "zerxbot search engine" - "Zeus search engine" - "Zion crawler" - "ZipppBot search engine" - "ZyBorg/1.0 search engine" - "100.21.24.205" - "102.129.145.***" - "102.129.145.111" - "102.129.145.203" - "102.129.145.30" - "102.129.152.***" - "102.129.152.117" - "102.129.152.130" - "102.129.235.***" - "102.129.235.105" - "102.129.235.11" - "102.129.235.128" - "102.129.235.20" - "102.129.235.236" - "102.129.235.243" - "102.129.235.95" - "103.103.98.73" - "103.108.44.82" - "103.109.56.240" - "103.120.36.48" - "103.144.198.36" - "103.161.228.82" - "103.213.239.72" - "103.250.79.92" - "103.252.117.55" - "104.222.46.30" - "104.250.237.73" - "104.46.110.117" - "107.151.182.54" - "107.151.182.58" - "107.174.242.*** crawler" - "116.202.49.19" - "122.161.52.235" - "125.30.16.*** crawler" - "125.30.17.*** crawler" - "125.30.18.*** crawler" - "125.30.19.*** crawler" - "125.30.20.*** crawler" - "125.30.21.*** crawler" - "125.30.22.*** crawler" - "125.30.23.*** crawler" - "125.30.31.*** crawler" - "125.30.32.*** crawler" - "125.30.43.*** crawler" - "125.30.44.*** crawler" - "125.30.56.*** crawler" - "125.30.60.154" - "125.30.60.209" - "125.30.60.224" - "125.30.61.*** crawler" - "125.30.69.149" - "125.30.69.49" - "125.30.72.*** crawler" - "125.30.73.160" - "125.30.74.*** crawler" - "125.30.75.*** crawler" - "125.30.83.14" - "125.30.83.192" - "125.30.84.*** crawler" - "125.30.85.*** crawler" - "125.30.86.*** crawler" - "125.30.87.200" - "125.30.89.209" - "125.30.89.252" - "125.30.90.*** crawler" - "125.30.91.*** crawler" - "125.30.92.16" - "125.30.92.26" - "125.30.92.81" - "128.14.209.26" - "13.75.147.105" - "13.90.150.239" - "131.153.142.170" - "131.153.142.170 RSS monitoring" - "131.153.143.50" - "131.153.143.50 RSS monitoring" - "131.153.240.*** RSS monitoring" - "131.153.240.10" - "131.153.240.162" - "131.153.240.178" - "131.153.240.2" - "134.73.70.19" - "135.148.37.187" - "136.243.54.123" - "136.54.123.68" - "137.117.88.168" - "137.184.130.44" - "137.184.93.143" - "137.74.246.152" - "138.201.119.20" - "139.28.218.235" - "139.99.62.***" - "139.99.62.224" - "141.94.194.132" - "141.94.194.132 RSS monitoring" - "142.132.159.184" - "142.44.178.222" - "143.178.156.15" - "144.202.8.128" - "144.76.108.212" - "144.76.14.48" - "144.91.95.177" - "146.190.229.143" - "149.102.232.***" - "15.235.15.135" - "150.136.87.92" - "150.31.18.*** crawler" - "150.31.19.*** crawler" - "150.31.20.*** crawler" - "150.31.28.*** crawler" - "150.31.29.*** crawler" - "150.31.35.*** crawler" - "150.31.36.*** crawler" - "150.31.37.*** crawler" - "150.31.38.*** crawler" - "150.31.39.*** crawler" - "150.31.52.*** crawler" - "150.31.53.*** crawler" - "150.31.8.*** crawler" - "154.16.206.***" - "154.16.206.108" - "154.205.9.196" - "154.26.157.80" - "154.27.77.194" - "154.3.224.*** crawler" - "157.245.54.24" - "158.140.165.*** crawler" - "158.69.23.79" - "160.13.105.*** crawler" - "160.13.106.*** crawler" - "160.13.107.*** crawler" - "160.13.108.*** crawler" - "160.13.109.*** crawler" - "160.13.78.*** crawler" - "160.13.79.*** crawler" - "160.13.80.*** crawler" - "160.13.83.*** crawler" - "160.13.85.*** crawler" - "160.13.88.*** crawler" - "160.13.89.*** crawler" - "160.13.92.*** crawler" - "160.13.93.*** crawler" - "160.13.94.*** crawler" - "160.13.95.*** crawler" - "165.232.173.160" - "166.0.218.*** crawler" - "166.0.218.46" - "166.0.218.57" - "167.71.90.27" - "17.241.219.36" - "17.241.227.191" - "17.241.75.166" - "17.241.75.252" - "170.187.201.150" - "172.104.189.197" - "172.105.152.253" - "172.172.104.187" - "172.172.106.190" - "172.172.124.152" - "172.172.68.223" - "172.172.97.55" - "172.177.141.0" - "172.177.148.116" - "172.177.94.118" - "172.188.27.143" - "172.200.81.49" - "172.232.7.113" - "172.233.130.4" - "172.233.146.84" - "172.233.211.225" - "173.195.15.*** Link checker" - "173.245.202.*** Link checker" - "173.245.203.141 Link checker" - "173.245.203.225 Link checker" - "173.245.203.40 Link checker" - "176.125.229.***" - "176.125.229.3" - "176.125.230.***" - "176.125.230.15" - "176.125.230.32" - "176.125.230.33" - "176.125.230.8" - "176.9.150.155" - "176.9.77.72" - "178.128.19.57" - "178.175.128.40 Link checker" - "178.175.128.45 Link checker" - "178.175.129.*** Link checker" - "178.175.129.37 Link checker" - "178.175.129.41 Link checker" - "178.175.129.43 Link checker" - "178.175.129.44 Link checker" - "179.43.191.18" - "18.203.136.31" - "18.212.97.166" - "181.115.208.123" - "181.41.206.***" - "181.41.206.103" - "181.41.206.128" - "181.41.206.152" - "181.41.206.18" - "181.41.206.36" - "181.41.206.38" - "181.41.206.65" - "183.134.163.43" - "183.83.214.58" - "185.117.225.15" - "185.117.225.174" - "185.117.225.175" - "185.117.225.24" - "185.125.219.13" - "185.147.212.102 Link checker" - "185.147.212.62 Link checker" - "185.147.213.37 Link checker" - "185.180.14.152" - "185.180.143.11" - "185.180.143.12" - "185.180.143.146" - "185.180.143.15" - "185.180.143.74" - "185.180.143.75" - "185.216.71.252" - "185.241.208.116" - "185.254.238.80" - "185.5.249.185" - "185.53.211.64" - "185.98.156.70" - "188.165.224.122" - "191.96.106.***" - "191.96.106.101" - "191.96.106.117" - "191.96.106.51" - "191.96.37.***" - "191.96.37.44" - "191.96.67.***" - "191.96.67.191" - "191.96.67.213" - "191.96.67.218" - "191.96.67.244" - "191.96.67.9" - "192.200.158.242 Link checker" - "193.118.52.30" - "193.118.53.109" - "193.118.53.91" - "193.124.188.83" - "193.124.190.18" - "194.146.15.80" - "194.193.50.79" - "194.195.242.113" - "194.38.22.71" - "194.67.207.9" - "194.67.207.94" - "194.67.210.77" - "196.196.53.***" - "196.196.53.61" - "196.196.53.88" - "198.235.24.*** crawler" - "198.235.24.12" - "198.235.24.14" - "198.235.24.57" - "198.74.55.128" - "2.58.113.194" - "20.10.178.106" - "20.12.53.191" - "20.122.66.224" - "20.125.101.243" - "20.14.139.144" - "20.163.52.87" - "20.166.81.134" - "20.198.112.254" - "20.199.19.194" - "20.204.57.170" - "20.223.212.89" - "20.230.123.158" - "20.240.13.*** crawler" - "20.25.162.233" - "20.27.89.240" - "20.5.104.63" - "20.7.46.22" - "200.97.218.2" - "202.61.242.202" - "204.10.193.85" - "205.185.209.64 Link checker" - "205.185.214.61 Link checker" - "205.185.214.96 Link checker" - "205.185.222.138 Link checker" - "205.185.222.177 Link checker" - "205.185.223.*** Link checker" - "205.210.31.*** crawler" - "205.210.31.129" - "205.210.31.148" - "205.210.31.15" - "205.210.31.166" - "205.210.31.168" - "205.210.31.185" - "205.210.31.52" - "207.148.68.97" - "207.204.228.99 Link checker" - "207.204.229.42 Link checker" - "207.204.248.14 Link checker" - "207.204.248.201 Link checker" - "207.204.249.33 Link checker" - "207.204.249.5 Link checker" - "207.46.13.107" - "209.107.204.56 Link checker" - "209.107.210.162 Link checker" - "209.107.216.*** Link checker" - "212.109.132.196" - "212.68.54.203" - "216.131.109.*** Link checker" - "216.131.110.155 Link checker" - "216.131.110.167 Link checker" - "216.131.110.22 Link checker" - "216.131.111.28 Link checker" - "216.131.111.45 Link checker" - "216.131.112.4 Link checker" - "216.131.112.46 Link checker" - "216.131.114.*** Link checker" - "216.131.116.*** Link checker" - "216.131.117.31 Link checker" - "216.131.122.33 Link checker" - "216.131.122.57 Link checker" - "216.131.72.*** Link checker" - "216.131.74.125 Link checker" - "216.131.75.*** Link checker" - "216.131.76.*** Link checker" - "216.131.77.*** Link checker" - "216.131.79.21 Link checker" - "216.131.79.63 Link checker" - "216.131.80.*** Link checker" - "216.131.81.47 Link checker" - "216.131.82.46 Link checker" - "216.131.88.*** Link checker" - "216.151.180.*** Link checker" - "216.151.183.*** Link checker" - "216.151.191.44 Link checker" - "216.218.141.230" - "216.73.161.68" - "220.158.233.***" - "220.158.233.48" - "23.20.220.59" - "3.136.87.177" - "3.230.128.106" - "3.234.241.124" - "3.236.73.95" - "3.249.133.106" - "3.249.186.8" - "3.249.23.139" - "3.252.216.115" - "3.252.83.45" - "3.253.142.93" - "3.253.198.114" - "3.93.173.205" - "31.129.110.237" - "34.207.208.186" - "34.210.68.68" - "34.213.97.110" - "34.219.185.201" - "34.226.66.3" - "34.230.84.106" - "34.237.245.80" - "34.241.117.91" - "34.244.106.133" - "34.245.113.49" - "34.247.105.142" - "34.254.176.39" - "34.70.1.206" - "35.168.113.41" - "35.93.100.12" - "36.27.95.48" - "37.139.53.*** crawler" - "37.167.91.236" - "37.19.221.***" - "37.19.223.***" - "37.27.3.212" - "37.46.113.*** Link checker" - "37.46.113.192 Link checker" - "37.46.113.203 Link checker" - "37.46.113.209 Link checker" - "37.46.113.210 Link checker" - "37.46.115.19 Link checker" - "37.46.115.21 Link checker" - "37.46.115.27 Link checker" - "37.46.115.28 Link checker" - "37.46.115.29 Link checker" - "37.46.115.30 Link checker" - "37.67.153.214" - "4.210.91.56" - "4.232.64.246" - "40.71.170.134" - "43.246.202.242" - "44.203.234.220" - "44.218.102.77" - "44.222.149.13" - "44.230.252.91" - "44.231.202.44" - "45.10.155.226" - "45.10.155.233" - "45.126.126.180" - "45.138.16.202" - "45.141.215.116" - "45.156.128.17" - "45.156.128.2" - "45.33.51.228" - "45.76.163.17" - "45.77.35.161" - "45.79.192.175" - "46.250.250.119" - "46.4.249.138" - "47.76.35.*** crawler" - "5.36.189.30" - "5.37.223.214" - "5.9.124.188" - "51.178.75.118" - "51.79.82.90" - "52.167.144.189" - "52.178.204.143" - "52.233.106.*** crawler" - "52.233.106.12" - "52.25.208.208" - "52.90.181.205" - "54.145.231.177" - "54.159.81.87" - "54.166.234.171" - "54.172.169.199" - "54.177.16.51" - "54.225.1.66" - "54.234.83.134" - "54.242.75.224" - "54.37.204.35" - "54.75.119.253" - "54.85.255.74" - "58.211.23.183" - "61.147.15.*** crawler" - "61.147.15.65" - "62.210.215.1** RSS monitoring" - "64.124.8.*** crawler" - "64.145.65.246 Link checker" - "64.145.79.*** Link checker" - "64.145.93.*** Link checker" - "64.145.94.34 Link checker" - "69.164.212.114" - "69.195.145.*** crawler" - "74.249.58.241" - "74.80.208.*** crawler" - "77.74.177.119" - "78.141.211.98" - "79.142.79.*** Link checker" - "79.244.31.111" - "80.85.139.166" - "80.85.142.44" - "83.149.81.165" - "83.97.73.83" - "83.99.151.65" - "84.246.85.11" - "85.208.96.194" - "85.208.96.197" - "85.208.96.205" - "85.209.176.85" - "85.214.101.168" - "86.104.21.237" - "89.187.182.14" - "91.240.118.252" - "91.92.245.181" - "91.92.246.2" - "91.92.246.225" - "91.92.246.247" - "91.92.253.183" - "91.92.255.159" - "92.184.118.16" - "93.159.230.*** crawler" - "93.159.230.89" - "93.72.172.55" - "93.73.179.*** crawler" - "94.142.141.230" - "94.156.67.39" - "94.228.145.229" - "95.216.99.153" - "95.217.109.231" - "95.217.207.179" - "98.159.234.***" - "98.159.234.70" - "98.159.234.90" - , "www.dir.com"

Vous pouvez consulter les dernières visites ou les identificateurs complets annoncés (933 User Agents) ou en télécharger la liste.

Quelques robots demandent régulièrement robots.txt mais les testeurs de validité des liens (vers votre site depuis d'autres sites ou des moteurs de recherche), les outils de validation de syntaxe et le log spamming ne lisent pas robots.txt.

Parmi ceux qui explorent le site

N'ont pas respecté les règles robots.txt :

  • Advista AdBot,alef/0.0, AhrefsBot, Alexa, Asterias, BIGLOTRON(Beta 2), bingbot, boitho.com, Content Crawler, DataForSEO Link Bot, DTAAgent, fast-search-engine, Fetch API Request, Gigamega.bot, grub (looksmart & other users), Helix, ia_archiver (Alexa), IRLbot, INA dlweb, Jyxobot, libwww-perl, LiteFinder, Lsearch/sondeur, LWP (simple & trivial), MegaIndex, msnbot/2.0b, MSR-ISRCCrawler, NetResearchServer, NOOS, OmniExplorer_Bot, Pompos (www.dir.com), Program Shareware, Seekport, shunix (libwww-perl/5.803), TygoBot, wbdbot, WebCrawler, Yahoo! Slurp/3.0, ZyBorg

- récemment :

  • BaiduSpider, bingbot, Bytespider, DataForSEO Link Bot, Domains Project, GeedoBot, GPTBot, MegaIndex, Seekport

Ont utilisé le maximum de la bande passante :

  • appie, Ask Jeeves, Exalead ou NG/1.0, Fetch API Request, msnbot/0.1, msnbot/0.11, NaverRobot, Pompos (www.dir.com), Program Shareware, shunix (Xun), TygoBot, WebCrawler

- récemment :

  • Cityreview, e-SocietyRobot, INA dlweb, LWP (simple & trivial), NG/2 (Exalead), OmniExplorer_Bot, Seekbot, semrush

Ont suivi les règles robots.txt sauf pour les fichiers exe, pdf, tar et zip :
- récemment :

  • larbin, Sensis.com.au, sygol, ZyBorg

Récemment pour ce site :

Pour les visites plus anciennes :

Explorent uniquement la page d'accueil

  • Anonymous
  • aragna.net_bot
  • Bazbot
  • Big Fish
  • BitSightBot
  • BuzzRankingBot
  • CentiverseBot
  • Cherchonsbot
  • CMS Crawler
  • comBot
  • ContextAd Bot
  • Cosmix
  • Crawl Annu
  • Crawllybot
  • cybercity.dk
  • DataFountains/DMOZ Downloader
  • Declumbot
  • del.icio.us-thumbnails
  • DMOZ Experiment
  • DNSGroup
  • DomainTaggingbot
  • DuckDuckGo
  • ejupiter.com
  • elefent
  • emefgebot
  • envolk
  • exooba
  • Expanse
  • favorstarbot
  • flatlandbot
  • Flight Deck
  • Fluffy
  • flyindex
  • FollowSite
  • Gaisbot/3.0
  • Galbot
  • GeoBot
  • Gnomit
  • GOFORITBOT
  • google+
  • grub crawler
  • GT::WWW/1.02
  • GVC-SPIDER
  • Holmes
  • HooWWWer
  • HouxouCrawler
  • ICC-Crawler
  • Indy Library
  • InelaBot
  • InsiteRobot
  • InternetSeer
  • IP*Works
  • IP 67.15.68.85
  • IP 67.108.232.229
  • IP 193.109.173.79
  • IP 207.44.188.104
  • iSearch
  • JikeSpider
  • JungleKeyBot
  • KaloogaBot
  • KiwiStatus Update Profile
  • Knowledge.com
  • KomodiaBot
  • linkaGoGo
  • LinkPimpin
  • Links SQL
  • Look.com
  • Loopy.fr
  • Loserbot
  • MapoftheInternet
  • Marvin
  • MetaGenerator
  • Metaspinner
  • Monrobot
  • Monsidobot
  • mozDex
  • MQBOT
  • MSIE 4.5; Windows 98;
  • MSIE 6.0 (compatible; MSIE 6.0;
  • MSIE 7.01
  • MSNPTC
  • MultiCrawler
  • NCBot
  • Netcraft
  • netEstate
  • NetID Bot
  • NetResearchServer
  • NetSprint
  • NetSystemsResearch
  • NetWhatCrawler
  • NimbleCrawler
  • nrsbot
  • ObjectsSearch
  • octopodus
  • ODP::/0.01
  • ODP links test
  • onCHECK
  • OnetSzukaj
  • OpenX Spider
  • PEERbot
  • PHP/4.2.2
  • PHP version tracker
  • PicSpider
  • PipeLiner
  • polybot
  • PrivacyFinder
  • PROBE!
  • RAMPyBot
  • REBOL View
  • Robotzilla
  • savvybot
  • Scrubby
  • search.updated.com
  • SearchByUsa
  • SearchIt.Bot
  • SemanticScholar
  • silk
  • Skywalker
  • Slurpy Verifier
  • snap.com
  • snipsearch
  • sogou spider
  • sohu-search
  • SurdotlyBot
  • SynooBot
  • Syntryx ANT
  • T-H-U-N-D-E-R-S-T-O-N-E
  • Teoma
  • test
  • Thumbnail.CZ robot
  • thumbshots-de-bot
  • trexmod
  • updated
  • UUNET
  • VDSX.nl
  • WebAlta
  • webcrawl
  • webpros
  • WebRACE
  • WebsiteWorth
  • wectarbot
  • wikiwix
  • Willow Internet Crawler
  • WinkBot
  • Winsey
  • WIRE
  • WorQmada
  • www.IsMySiteUp.Net
  • xirq
  • yacybot
  • Yahoo-MMCrawler
  • Yooda
  • YottaCars
  • YottaShopping
  • YoudaoBot
  • ZeBot
  • zerxbot
  • ZipppBot

Explorent les autres pages

  • 1Noonbot
  • 80legs
  • 360Spider
  • ABACHOBot
  • abcfr_robot
  • Accoona-AI-Agent
  • AcoonBot
  • ActiveBookmark
  • ADmantX
  • AdsBot-Google
  • Advista AdBot
  • aiHitBot
  • aipbot
  • alef
  • Aleksika
  • Alexa
  • amagit
  • Amazonbot%C
  • Amfibibot
  • AnswerBus
  • AntBot
  • antibot
  • appie
  • Apple-PubSub
  • Applebot
  • AraBot
  • archive.org_bot
  • Argus
  • Ask Jeeves
  • Asterias
  • atraxbot
  • BacklinkCrawler
  • Baiduspider
  • Barkrowler / BUbiNG
  • BecomeBot
  • Biglotron
  • Bing
  • binlar
  • bitlybot
  • BitNinja
  • bixolabs
  • BlogCorpusCrawler
  • Blogdimension
  • Bloglines (RSS)
  • Bluebot
  • bogospider
  • boitho
  • Bookdog
  • bot/1.0
  • BruinBot
  • Butterfly
  • C4PC
  • CacheBot
  • Caliperbot
  • capek
  • CatchBot
  • CazoodleBot
  • CCBot
  • ccubee
  • cfetch
  • Chanceo
  • Cincraw
  • Cityreview
  • Claritybot
  • Combine
  • cometsystems
  • CompSpyBot
  • Content Crawler
  • ConveraCrawler
  • CorenSearchBot
  • COrpora from the Web
  • Covario
  • Cox Communications
  • CRAZYWEBCRAWLER
  • csci_b659/0.13
  • CydralSpider
  • Cyveillance
  • darxi
  • DataForSEO Link Bot
  • Dazoobot
  • DealGates
  • deepak-USC/ISI
  • del.icio.us
  • DepSpid
  • Deskyobot
  • Diamond
  • Diffbot
  • discobot
  • Discovery Engine
  • Domains Project
  • DotBot
  • DTAAgent
  • Dumbot
  • e-SocietyRobot
  • eApolloBot
  • EasyDL
  • EdisterBot
  • ellerdale
  • EnaBot
  • ePochta_Extractor
  • ETS
  • Exabot
  • Exabot-Images
  • Exabot-Thumbnails
  • facebookexternalhit
  • Factbot
  • Falconsbot
  • FAST-search-engine
  • FAST-WebCrawler
  • FAST Enterprise Crawler
  • FAST MetaWeb Crawler
  • FavOrg
  • FeedBurner
  • FeedFetcher-Google (RSS)
  • Fetch API Request
  • Filangy
  • Findexa
  • findfiles.net
  • findlinks
  • fleck
  • Focal
  • Friend or Winsey
  • FurlBot
  • Gaisbot
  • Generalbot
  • genevabot
  • geniebot
  • Gigabot/1.0
  • Gigamega.bot
  • GingerCrawler
  • Girafabot
  • gold crawler
  • Google-Site-Verification
  • Google-Sitemaps
  • Googlebot
  • Googlebot-Image
  • Googlebot-Mobile
  • Google Desktop
  • Google Favicon
  • GrapeshotCrawler
  • grub
  • grub.org
  • gsa-crawler
  • gURLChecker
  • GurujiBot
  • GUSbot
  • Hailoobot
  • hclsreport
  • Headline
  • Helix
  • HenriLeRobotMirago
  • Heritrix
  • hoge
  • htdig
  • ia_archiver
  • ichiro
  • IGBot
  • Iltrovatore-Setaccio
  • INA dlweb
  • inet library
  • interseek
  • IntranooBot
  • IP 63.247.72.42
  • IP 89.122.57.185
  • IP 217.74.99.100
  • IRLbot
  • istarthere
  • Jakarta Commons-HttpClient
  • Jetbot
  • Jyxobot
  • KiwiStatus
  • knowmore
  • larbin
  • ldspider
  • leak
  • lemurwebcrawler
  • librabot
  • libwww-perl
  • LinguaBot
  • Link Commander
  • linkdex.com
  • Linkman
  • Linkpad
  • Link Valet Online
  • LiteFinder
  • livemark.jp
  • lmspider
  • Lsearch/sondeur
  • LWP (simple & trivial)
  • Mail.Ru
  • Me.dium
  • Mediapartners-Google
  • Megaglobe
  • Megite
  • Metric Tools
  • MJ12bot
  • MLBot
  • MojeekBot
  • MOSBookmarks
  • Mozilla/4.0 (compatible; MSIE 6.0)
  • Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0;)
  • Mp3Bot
  • MQbot
  • MSMOBOT
  • msnbot
  • MSR-ISRCCrawler
  • MSRBOT
  • mxbot
  • MyFamilyBot
  • Nambu
  • NaverBot
  • NaverRobot
  • neeva
  • Nelian Pty Ltd
  • netsweeper
  • newsg8 (RSS)
  • NEWT ActiveX
  • NG-Search
  • NG/2.0
  • NGBot
  • nicebot
  • Nigma
  • NjuiceBot
  • NOOS
  • Norbert the Spider
  • NoteworthyBot
  • NPBot
  • NuSearch Spider
  • Nutch
  • oBot
  • OmniExplorer
  • onalytica
  • OpenindexSpider
  • OpenISearch
  • OpenTaggerBot
  • OrangeBot-Mobile
  • OutfoxBot
  • ozelot
  • page-store
  • Pagebull
  • page_verifier
  • Paleoweb
  • panopta.com
  • Pathtraq
  • PeerFactor crawler
  • petalbot
  • Pete-Spider
  • pflab
  • Pinboard Dead Link Checker
  • Pinterestbot
  • PollettSearch
  • PostFavorites
  • PostRank
  • Powermarks
  • Program Shareware
  • proximic
  • psbot
  • Python-urllib
  • QEAVis
  • QihooBot
  • Qualidator.com Bot
  • quickobot
  • Qwantify
  • RankurBot
  • Rapid-Finder
  • RedBot
  • RixBot
  • Rogerbot
  • RSSMicro
  • RTGI
  • RufusBot
  • Sagool
  • SBIder
  • schibstedsokbot
  • ScoutJet
  • Screaming Frog
  • ScSpider
  • SearchWebLinks
  • Seekbot
  • Semager
  • semetrical
  • SemrushBot
  • Sensis
  • seocompany
  • SEOENGBot
  • SEOkicks
  • SEOprofiler bot
  • SETOOZBOT
  • SeznamBot
  • ShablastBot
  • Shelob
  • sherlock
  • Shim-Crawler
  • ShrinkTheWeb
  • ShunixBot
  • SiMilarTech
  • SISTRIX
  • SiteBot
  • Snapbot
  • SnapPreviewBot
  • socbay
  • sogou spider
  • sohu agent
  • Solomono
  • SpeedySpider
  • SpiderLing
  • sproose
  • SpurlBot
  • startmebot
  • statbot
  • StatusCheckBot
  • Steeler
  • SuperBot
  • Susie
  • sygol
  • Synapse
  • SynapticWalker
  • Szukacz
  • TargetYourNews
  • Teemer
  • TerraSpider
  • TFC
  • Theophrastus
  • Thriceler
  • TinEye
  • Toplistbot
  • Tubenowbot
  • TurnitinBot
  • TutorGigBot
  • Tutorial Crawler
  • TweetmemeBot
  • TwengaBot
  • Twiceler
  • Twisted PageGetter
  • Twitterbot
  • Twitturl
  • TygoBot
  • uberbot
  • UnChaosBot
  • Unicorn
  • UptimeAuditor
  • URLBase
  • Valizbot
  • VelenPublicWebCrawler
  • versus crawler
  • Visbot
  • VoilaBot
  • Voluniabot
  • Vortex
  • voyager
  • WASALive
  • wbdbot
  • WebarooBot
  • WebCorp
  • WebFilter
  • WebMeUp
  • WebNL
  • WebSense
  • Winsey or Friend
  • WongBot
  • woorank
  • woriobot
  • Wotbox
  • wpbot
  • wume_crawler
  • www.almaden...
  • www.pisoc.com
  • Xenu
  • Xerka
  • XmarksFetch
  • XoviBot
  • Yahoo! Mindset
  • Yahoo! Slurp
  • Yahoo-Test
  • YahooSeeker
  • YahooVideoSearch
  • Yandex
  • Yanga
  • yellowJacket
  • YesupBot
  • Yeti
  • yoono
  • YRSpider
  • Zion
  • ZyBorg
avec des requêtes parfois anormales
  • curl
  • Pompos
  • shunix (Xun)
A la recherche de vulnérabilités
  • DataCha0s
  • libwww-perl
  • LWP (simple & trivial)
  • Mozilla/3.0 (compatible; Indy Library)
  • Mozilla/5.0
hautHaut de la page

Repérer un robot

Les indésirables

Tout d'abord, il faut s'assurer que la page demandée existe bien.
Pour ce site, Apache renvoie /index.php dans $_SERVER['SCRIPT_NAME'] si la page n'existe pas. Si $_SERVER['REQUEST_URI'] sans la chaîne de requête n'est pas la page d'accueil, alors nous avons affaire à un robot qui cherche les failles connues d'un CMS.

Il faut ensuite s'assurer que la chaîne de requête n'est pas différente de ce qui est utilisé pour le fonctionnement du site ou l'isoler grace à $_SERVER['QUERY_STRING'] et tester la présence d'éléments indésirables qui indiquent qu'il s'agit d'un robot - les expressions régulières #(\b|%..)(AND|UNION|SELECT|CASE|ORDER( |%20)BY)(\b|%..)|(CHA?R|SLEEP|ELT|CONCAT|SCRIPT)\(\d|\d{1,4}=\d{1,4}#i et #(author|cmd|mode|option|task|view)=|admin|user|w(ord)?p(ress)?|\.env|%#i repèrent les plus fréquentes.
L'identificateur du navigateur peut lui aussi comporter ces mêmes éléments.

On peut ensuite s'assurer que le formulaire de contact n'est pas la seule page qui est requise (et avec une méthode POST).

L'examen du "referer" ($_SERVER['HTTP_REFERER']) permet de repérer les spammeurs. La méthode utilisée est souvent HEAD, le domaine de deuxième niveau de l'URL, le répertoire ou le nom de domaine principal peuvent être significatifs. Pour ce site, le domaine de deuxième niveau est le plus souvent ru, ua, kz, su, by et autres extensions comme club, finance, fun... Le répertoire et le nom de domaine utilisent en plus des mots relatifs au commerce, marketing, au jeu, à la finance...
L'examen des fichiers fichiers journaux permet d'en faire une liste assez rapidement.

Nombre de robots reviennent régulièrement sans s'identifier et demandent, toujours dans le même ordre, souvent avec l'URL du site comme "referer", les mêmes pages, parfois une ou deux pages, parfois une grande partie du site.
Ils sont plus difficiles à repérer car ils changent d'adresse IP, d'identificateur...

Ce repérage de robots indésirables n'est pas infaillible car les robots des meilleurs moteurs de recherche souffrent de bugs.

A partir de son identificateur

Ci dessous, le script PHP qui permet de repérer si la requête est due à un robot ou un moteur de recherche et qui est utilisé pour les statistiques du site :

Un script utilisant l'identificateur est maintenant disponible ici

Il est plus difficile de détecter les robots qui ne s'identifient pas :

A partir de son hôte

Un bon exemple semble être le robot de www.dir.com (référencement) qui utilisait en mai 2003 les adresses IP 212.27.33.164 à 212.27.33.173 (212.27.41.18 en novembre 2003) et dont l'activité est filtrée dans la page relevant les serveurs.
Une fois ce type de robot repéré, voici la routine PHP qui fait suite à la précédente :

if (!$robot)
{
$robot=strchr(gethostbyaddr($no_ip),".dir.com");
}
//en sortie, si c'est le robot de www.dir.com alors $robot contient .dir.com...

L'expression rationnelle /semrush|^crawl|\.(google|msn|spider|apple|sketchengine)\./ permet d'éviter les erreurs d'identification liées à un bug ou un "user agent" inhabituel.

A partir de son adresse IP

Un robot qui n'utilise que quelques adresses IP peut être repéré de la même manière :

if (!$robot)
{
$robot=strchr($no_ip,"208.53.138.");
}
/*
en sortie, si l'adresse IP est comprise entre 208.53.138.0 et 208.53.138.255
$robot contient 208.53.138.
*/

Dans tous les cas il est nécessaire de constituer et d'actualiser une liste des identificateurs, des hôtes et des adresses IP dont le comportement lors d'accès au site est anormal.

A partir de la méthode utilisée pour la requête

Il semble qu'actuellement (juin 2005) seuls les robots et utilitaires de téléchargements utilisent une requête HEAD (puis GET si la page existe ou a été modifiée). $_SERVER["REQUEST_METHOD"] peut donc permettre de repérer un robot avec un identificateur de navigateur. (Voir fil RSS pour les essais en cours) :

/*cette méthode doit précéder les autres*/
if ($_SERVER["REQUEST_METHOD"]=="HEAD") {$robot="robot";};
/*en sortie, $robot n'est plus vide*/

Toutes ces méthodes semblent plutôt fiables, moins de 2% d'erreurs dans mon cas.

hautHaut de la page

Bloquer un robot avec PHP

Quand l'accès à .htaccess est limité (mon cas) ou si on souhaite réduire la taille d'un fichier .htaccess et laisser le serveur s'occuper de ce qui est utile, PHP permet de rediriger ou bloquer un robot.

Pour un robot (ici Fetch API Request) qu'on souhaite bloquer, il suffit alors de débuter toutes nos pages (avant toute sortie vers le navigateur) par le script suivant qui redirige vers la page bye.html, toute autre page ou envoyer un message de statut 403 Access Denied :

<?php
$UA=getenv("HTTP_USER_AGENT");
if (stristr($UA,"Fetch API Request")!="")
{
header("Location:http://mydomain/bye.html");
die(); /*ligne à ôter si on place ici la redirection HTML*/
}
?>

Cette page ne contenant aucun lien, l'aspiration s'arrête aussitôt.
On peut en faire autant avec une adresse IP, on utilise alors getenv("REMOTE_ADDR");.
Des techniques plus sophistiquées sont disponibles plus haut.

Environ deux tiers des robots suivent la redirection si le nom de domaine ne change pas, presque aucun s'il change.
Il faut donc prévoir une redirection en HTML si on souhaite qu'il soient tous redirigés ou qu'ils sachent où se trouve la nouvelle page :

<?php
echo"<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Redirection</title>
<meta http-equiv="Refresh" content="0;URL=http://mydomain/bye.html">
</head>
<body>
<p>
Redirection: <a href="http://mydomain/bye.html">http://mydomain/bye.html</a>
</p>
</body>
</html>";
die();
?>

Autoriser certains robots et en bloquer d'autres

Une fonction à inclure et appeler en début de chaque page peut permettre de gérer les robots.

/*début de la fonction*/
function redirige_robots()
{
$requested_page=$_SERVER["REQUEST_URI"];
if (preg_match("/([enptux\d]|\b)(ftp|https?|php)(:\/\/|%3A%2F%2F)/i",$requested_page))
   {die();} /*bloque la majorité des zombies*/

Quand on a la malchance d'être visité par des zombies, ou quand on utilise un CMS, autant rejeter toutes ces requêtes.

if ($_SERVER["REQUEST_METHOD"]=="HEAD") return;

Pourquoi bloquer ce type de requête ? Le "mal" est fait, les testeurs de liens vers votre site (Xenu, Powermarks, Link Commander, HTTrack, IRLbot...) et les moteurs de recherche (Speedy Spider, sygol...) auront une réponse positive et, s'ils reviennent avec une requête GET ou POST, verront leur cas traité ensuite.
Il est possible de stocker l'adresse IP dans une table MySQL pour bloquer tout retour de l'utilitaire ou du robot.

$UA=getenv("HTTP_USER_AGENT");
if (preg_match("/Googlebot|Yahoo|VoilaBot|Ask Jeeves|SpeedySpider/i",$UA)) return;

Pas de problème pour les robots autorisés : ceux qui s'annoncent et qui sont cités dans l'expression rationnelle (régulière) ci-dessus. On peut contrôler que l'hôte corresponde bien à ce qui est déclaré par l'User Agent.

/*
Inclure bot dans l'expression bloquera aipbot, antibot, boitho, OmniExplorer...
Pour ce site, jusqu'à 408 robots !
*/
if (preg_match("/[^e]crawler|spider|bot|custo |web(cow|moni|capture)|wysigot|httrack|wget|xenu/i",$UA))
{
header("Location:http://mydomain/bye.html");die();
/*une autre option c'est d'envoyer un message 403 Access Denied
header("Status: 403 Forbidden");die();*/
}

Même si je ne suis pas convaincu par la nécessité de bloquer ceux qui n'exagèrent pas, tous ceux qui sont dans l'expression rationnelle (régulière) seront redirigés.
attentionPlusieurs utilitaires comme Wysigot laissent leur empreinte dans l'identificateur même lorsqu'ils ne sont pas actifs.

$no_ip=getenv("REMOTE_ADDR");
$hote=gethostbyaddr($no_ip);
if (preg_match("/(becquerel|66-132|64-225)\.noos\.(net|fr)/i",$hote) && (strchr($UA,"MSIE 4.01"))
 {
 header("Location:http://mydomain/bye.html");die();
 }
if (preg_match("/exabot|lehigh/i",$hote))
 {
 header("Location:http://mydomain/bye.html");die();
 }

On peut tester l'hôte et exclure quelques robots mal élevés ou la lecture des pages par l'intermédiaire d'un moteur de recherche. Est-ce bien nécessaire ?

//$no_ip=getenv("REMOTE_ADDR");
if (preg_match("/63\.247\.72\.42|208\.53\.138\.1/",$no_ip))die();

On peut exclure une adresse IP ou un groupe d'adresses IP, récupérer dans une base MySQL les adresses IP à exclure...

return;
}
/*fin de la fonction*/

Ceux qui ont passé toutes les étapes peuvent accéder à la page.
On peut optimiser le code, ajouter d'autres règles pour le referrer, le nombre de pages lues en liaison avec MySQL... Il sera facile d'effectuer des modifications, mais combien d'erreurs ?

hautHaut de la page

Quelques pistes...

Etant entendu qu'il ne faut pas exclure les robots de référencement (même si personne ne peut empêcher un utilisateur d'aspirateur de site d'envoyer l'identificateur d'un de ces robots), il reste à savoir si les accès sont dus à des êtres humains ou pas.
Ce site comporte deux pièges à robots dans la page d'accueil en français (et un seul piège à robots dans la page d'accueil en anglais) sous forme de liens que l'oeil ne peut repérer :
- le premier me sert à savoir si j'ai affaire à un robot, il se trouve dans un répertoire autorisé et me permet de mettre la liste ci-dessus à jour.
- le deuxième se trouve dans un répertoire interdit par le fichier robots.txt ( Disallow: /interdit/ ). Même si tous les robots de référencement ne sont pas très respectueux des règles, à moi de décider lorsque cette page est atteinte de ce qu'il faut faire.
Comme il est bien rare que le site soit copié, et même si les utilisateurs d'aspirateurs ne respectent pas souvent les règles, ces deux pièges ne servent à rien.
Si le site est suffisamment intéressant pour être "photographié", qu'il le soit.
Si la copie me gênait, je pourrais alors utiliser les scripts cités en début de page, les méthodes commentées à la suite du script de détection, un script PHP anti-capture, limiter le nombre de pages accessibles par session ou par adresse IP (les robots téléchargeront à chaque fois les mêmes fichiers), ou encore m'assurer qu'aucune activité anormale ne vient empêcher l'accès aux autres visiteurs en comptant le nombre de fichiers lus par seconde et ralentir le chargement de chaque page, ce qui ne pose problème qu'aux robots et à ceux qui ne prennent pas le temps de lire.
Utiliser l'adresse IP pour bloquer toutes les pages ou ralentir les accès fonctionne à condition que le prestataire affecte une adresse unique. Ce n'est pas le cas d'AOL ou des grosses entreprises (SNCF, France Télécom, RATP, Alcatel ...) qui font tourner les adresses IP dont elles disposent.
Reste le choix de l'hébergeur : certains bloquent les aspirateurs de site (comme parfois www.free.fr!!!).

Il est donc bien difficile ou bien risqué de vouloir protéger son site des copies.

Comme free.fr filtre parfois HTTrack, si vous préférez la consultation hors ligne, vous pouvez télécharger la partie statique du site au 31/12/05 ( fichiers compressés avec extension : exe~714k ou bz2~828k - seul le plan du site permet d'accéder à toutes les pages).

hautHaut de la page
Valid CSS! Valid XHTML 1.0!