PHP / MySQL – фильтр массивов для ботов

Я делаю счетчик. У меня есть база данных, и я храню IP и $_SERVER['HTTP_USER_AGENT']; посетителей. Теперь мне нужно добавить фильтр, чтобы я мог удалять хиты, созданные ботами. Я узнал, что многие боты обычно содержат некоторые общие слова в $_SERVER['HTTP_USER_AGENT']; , поэтому я хотел бы сделать и массив слов, которые не позволят боту отобразиться в результатах.

Вот что у меня есть сейчас:

 while($row = mysql_fetch_array($yesterday, MYSQL_ASSOC)) { 

<- Мне нужен код, который будет запускаться через массив и проверять, если он содержит ключевые слова, и если это не так … просто count ++; ->

  } 

Также, если вы знаете какой-либо другой способ обнаружения и удаления ботов из результатов, я был бы благодарен. ура

Прокрутите массив слов с помощью foreach и проверьте, существует ли текущее слово в строке UA с помощью strpos () :

 foreach ($words as $word) { if (strpos($row['user_agent'], $word) !== FALSE) { // word exists in string } } 

Использование списка Димитара Кристофа закончилось этим сценарием:

 function isBot($user_agent){ $bots = array('bingbot', 'msn', 'abacho', 'abcdatos', 'abcsearch', 'acoon', 'adsarobot', 'aesop', 'ah-ha', 'alkalinebot', 'almaden', 'altavista', 'antibot', 'anzwerscrawl', 'aol', 'search', 'appie', 'arachnoidea', 'araneo', 'architext', 'ariadne', 'arianna', 'ask', 'jeeves', 'aspseek', 'asterias', 'astraspider', 'atomz', 'augurfind', 'backrub', 'baiduspider', 'bannana_bot', 'bbot', 'bdcindexer', 'blindekuh', 'boitho', 'boito', 'borg-bot', 'bsdseek', 'christcrawler', 'computer_and_automation_research_institute_crawler', 'coolbot', 'cosmos', 'crawler', 'crawler@fast', 'crawlerboy', 'cruiser', 'cusco', 'cyveillance', 'deepindex', 'denmex', 'dittospyder', 'docomo', 'dogpile', 'dtsearch', 'elfinbot', 'entire', 'web', 'esismartspider', 'exalead', 'excite', 'ezresult', 'fast', 'fast-webcrawler', 'fdse', 'felix', 'fido', 'findwhat', 'finnish', 'firefly', 'firstgov', 'fluffy', 'freecrawl', 'frooglebot', 'galaxy', 'gaisbot', 'geckobot', 'gencrawler', 'geobot', 'gigabot', 'girafa', 'goclick', 'goliat', 'googlebot', 'griffon', 'gromit', 'grub-client', 'gulliver', 'gulper', 'henrythemiragorobot', 'hometown', 'hotbot', 'htdig', 'hubater', 'ia_archiver', 'ibm_planetwide', 'iitrovatore-setaccio', 'incywincy', 'incrawler', 'indy', 'infonavirobot', 'infoseek', 'ingrid', 'inspectorwww', 'intelliseek', 'internetseer', 'ip3000.com-crawler', 'iron33', 'jcrawler', 'jeeves', 'jubii', 'kanoodle', 'kapito', 'kit_fireball', 'kit-fireball', 'ko_yappo_robot', 'kototoi', 'lachesis', 'larbin', 'legs', 'linkwalker', 'lnspiderguy', 'look.com', 'lycos', 'mantraagent', 'markwatch', 'maxbot', 'mercator', 'merzscope', 'meshexplorer', 'metacrawler', 'mirago', 'mnogosearch', 'moget', 'motor', 'muscatferret', 'nameprotect', 'nationaldirectory', 'naverrobot', 'nazilla', 'ncsa', 'beta', 'netnose', 'netresearchserver', 'ng/1.0', 'northerlights', 'npbot', 'nttdirectory_robot', 'nutchorg', 'nzexplorer', 'odp', 'openbot', 'openfind', 'osis-project', 'overture', 'perlcrawler', 'phpdig', 'pjspide', 'polybot', 'pompos', 'poppi', 'portalb', 'psbot', 'quepasacreep', 'rabot', 'raven', 'rhcs', 'robi', 'robocrawl', 'robozilla', 'roverbot', 'scooter', 'scrubby', 'search.ch', 'search.com.ua', 'searchfeed', 'searchspider', 'searchuk', 'seventwentyfour', 'sidewinder', 'sightquestbot', 'skymob', 'sleek', 'slider_search', 'slurp', 'solbot', 'speedfind', 'speedy', 'spida', 'spider_monkey', 'spiderku', 'stackrambler', 'steeler', 'suchbot', 'suchknecht.at-robot', 'suntek', 'szukacz', 'surferf3', 'surfnomore', 'surveybot', 'suzuran', 'synobot', 'tarantula', 'teomaagent', 'teradex', 'thunderston-e', 'tigersuche', 'topiclink', 'toutatis', 'tracerlock', 'turnitinbot', 'tutorgig', 'uaportal', 'uasearch.kiev.ua', 'uksearcher', 'ultraseek', 'unitek', 'vagabondo', 'verygoodsearch', 'vivisimo', 'voilabot', 'voyager', 'vscooter', 'w3index', 'w3c_validator', 'wapspider', 'wdg_validator', 'webcrawler', 'webmasterresourcesdirectory', 'webmoose', 'websearchbench', 'webspinne', 'whatuseek', 'whizbanglab', 'winona', 'wire', 'wotbox', 'wscbot', 'www.webwombat.com.au', 'xenu', 'link', 'sleuth', 'xyro', 'yahoobot', 'yahoo!', 'slurp', 'yandex', 'yellopet-spider', 'zao/0', 'zealbot', 'zippy', 'zyborg', 'mediapartners-google' ); $user_agent = strtolower($user_agent); foreach($bots as $bot){ if(strpos($user_agent, $bot) === true){ return true; } } return false; } 

И почему бы нет?

 $bots=array('google', 'bing', 'yahoo', 'bot', 'crawler', 'baiduspider'); if(!preg_match('/('.join('|', $bots).')/is', $_SERVER['HTTP_USER_AGENT'])){ //record to db code } 

существуют определенные системы, которые пытаются и поддерживают полутоновую БД известных бот-строк, таких как CubeCart и oscommerce раньше. они делают это, чтобы иметь логическую функцию, которая фильтрует пользователя из бота в реальном времени посредством сравнения строк строки пользовательского агента с файлом spiders.txt. после обнаружения бота, они отключают корзину и логин и т. д.

вот последнее содержимое spiders.txt:

АБАЧО abcdatos abcsearch acoon adsarobot Эзоп ах-ха alkalinebot Алмаден Altavista AntiBot anzwerscrawl AOL поиск Appie arachnoidea araneo Architext Ариадна Ариадна Ask Jeeves aspseek Asterias astraspider Atomz augurfind BackRub baiduspider bannana_bot bbot bdcindexer blindekuh boitho Бойто Борг-бот bsdseek christcrawler computer_and_automation_research_institute_crawler coolbot космос гусеничный гусеничный @ быстрой crawlerboy крейсер Cusco Cyveillance deepindex denmex dittospyder DoCoMo Dogpile DtSearch elfinbot весь веб esismartspider Exalead возбуждают ezresult быстро быстро Webcrawler fdse ФЕЛИКС Fido FindWhat финский светлячка firstgov пушистый freecrawl frooglebot галактики gaisbot geckobot gencrawler geobot gigabot Girafa GoClick Голиаф Googlebot грифон Громит личинка-клиент Гулливер gulper henrythemiragorobot родной город HotBot htdig hubater ia_archiver ibm_planetwide iitrovatore-setaccio incywincy incrawler indy infonavirobot infoseek ingrid inspectorwww intelliseek internetseer ip3000.com-crawler iron3 3 jcrawler Дживса jubii Kanoodle kapito kit_fireball Комплект-ОГО ko_yappo_robot kototoi Lachesis larbin нога linkwalker lnspiderguy look.com Lycos mantraagent markwatch maxbot Меркатор merzscope meshexplorer MetaCrawler mirago mnogosearch могет двигатель muscatferret nameprotect nationaldirectory naverrobot nazilla NCSA бета netnose netresearchserver нг / 1,0 northerlights npbot nttdirectory_robot nutchorg nzexplorer ODP openbot openfind osis-project overture perlcrawler phpdig pjspide polybot pompos poppi portalb psbot quepasacreep rabot raven rhcs robi robocrawl robozilla roverbot scooter scrubby search.ch search.com.ua поиск в поисковых системах searchuk sevenwentyfour sidewinder sightquestbot skymob sleek slider_search slurp solbot speedfind speedy spida spider_monkey spiderku stackrambler steeler такойbot такойknecht.at-робот suntek szukacz surferf3 surfnomore surveybot suzuran synobot tarantula teomaagent teradex thunderstone tigersuche topiclink toutatis tracerlock turnitinbot tutorgig u aportal uasearch.kiev.ua uksearcher ultraseek unitek vagabondo verygoodsearch vivisimo voilabot voyager vscooter w3index w3c_validator wapspider wdg_validator webcrawler webmasterresourcesdirectory webmoose websearchbench webspinne whatuseek whizbanglab winona wire wotbox wscbot http://www.webwombat.com.au xenu ссылка сыщик xyro yahoobot yahoo! slurp yandex yellopet-spider zao / 0 zealbot zippy zyborg

пока вы не делаете клоакинг, как это , вы в порядке.