পিএইচপি দিয়ে সার্চ ইঞ্জিন বটগুলি কীভাবে সনাক্ত করবেন?


118

কীভাবে একজন পিএইচপি ব্যবহার করে অনুসন্ধান ইঞ্জিনের বটগুলি সনাক্ত করতে পারে?

উত্তর:


74

এখানে স্পাইডার নামের একটি অনুসন্ধান ইঞ্জিন ডিরেক্টরি

তারপরে আপনি $_SERVER['HTTP_USER_AGENT'];এজেন্টটিকে মাকড়সা বলছেন কিনা তা পরীক্ষা করতে ব্যবহার করুন ।

if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
{
    // what to do
}

যদি ((ইরেগি ("ইয়াহু", $ এটি-> ইউএস_এইচএএনএটি))) && (ইরেগি ("স্লুর্প", $ এটি-> ইউএসআইএকিএজিএনএটি))) {$ এই-> ব্রাউজার = "ইয়াহু! স্লুর্প"; $ this-> প্রকার = "রোবট"; this এই কাজ ঠিক হবে ??
ভয়ঙ্কর

3
যেহেতু স্ট্রপোজগুলি 0 (পজিশন) ফিরে আসতে পারে, স্টারস্টার ব্যর্থতায় মিথ্যা ফিরিয়ে দেয়, আপনি স্ট্রপোস ব্যবহার করতে পারেন যদি আপনি শেষে! == মিথ্যা চেক যোগ করেন।
ইলফুর ওয়েজ

2
আর্ম, ব্যর্থতায়ও strposফিরে আসে FALSE। এটি দ্রুত এবং আরও কার্যকর, যদিও (কোনও প্রাক প্রসেসিং নেই, এবং কোনও ও (এম) স্টোরেজ নেই)।
দামন

6
জাল ব্যবহারকারীর কী হবে ?!

2
এবং যদি কেউ তার ব্যবহারকারী এজেন্টটিকে নকল নাম দিয়ে পরিবর্তন করতে এবং "গুগলবোট" এর মতো নাম দিতে পারে? আমি মনে করি আইপি পরিসীমাটি পরীক্ষা করা আরও বিশ্বাসযোগ্য!
মোজতাবা রেজাeিয়ান

235

আমি নিম্নলিখিত কোডটি ব্যবহার করি যা দেখে মনে হচ্ছে এটি ঠিকঠাক কাজ করছে:

function _bot_detected() {

  return (
    isset($_SERVER['HTTP_USER_AGENT'])
    && preg_match('/bot|crawl|slurp|spider|mediapartners/i', $_SERVER['HTTP_USER_AGENT'])
  );
}

16-06-2017 আপডেট করুন https://support.google.com/webmasters/answer/1061943?hl=en

মিডিয়া পার্টনার যোগ করেছেন


2
এটি কি ধরে নেয় যে বটগুলি তাদেরকে এ জাতীয় হিসাবে প্রকাশ করে?
জেরোমি দেভেরা

2
ভোট দিন, ব্যবহারকারী এজেন্ট ক্রোম সেটিংস, ফায়ারফক্সে পরিবর্তিত হতে পারে
বারউনিকিক

24
হ্যাঁ ইউজারেজেন্ট পরিবর্তন করা যেতে পারে তবে কেউ যদি এটি পরিবর্তন করে "বট", "ক্রল", "স্লার্প" বা "মাকড়সা" রাখে তবে তাদের কাছে কী আসছে। এটি ইউটিলিটির উপরও নির্ভর করে। আমি এটি সমস্ত সিএসএস সরিয়ে ফেলার জন্য ব্যবহার করব না, তবে আমি এটি ব্যবহার করে কুকিগুলি সঞ্চয় না করা, অবস্থানের লগিং উপেক্ষা করতে বা অবতরণ পৃষ্ঠাটি এড়িয়ে যেতে ব্যবহার করব না।
জোনশিপম্যান 21

2
কেউ কি আমার সাথে একমত হয় না যে এটি বিস্তৃত পরিসরের মিলের উপায়?
দান

আমি আপনার ফাংশনটি এখন 1 দিনেরও বেশি সময় ব্যবহার করেছি এবং মনে হচ্ছে এটি কাজ করছে। কিন্তু আমি নিশ্চিত না. টেস্টিং বটগুলি পরীক্ষা করে যদি এটি কাজ করে তবে কীভাবে পাঠাতে পারি?
ফারিসফাহাদ

19

$_SERVER['HTTP_USER_AGENT']এখানে তালিকাভুক্ত কয়েকটি স্ট্রিংয়ের জন্য পরীক্ষা করুন:

http://www.useragentstring.com/pages/useragentstring.php

বা আরও নির্দিষ্টভাবে ক্রলারের জন্য:

http://www.useragentstring.com/pages/useragentstring.php?typ=Crawler

আপনি যদি সর্বাধিক সাধারণ ইঞ্জিন ক্রলারগুলির পরিদর্শন সংখ্যা লগতে চান, আপনি ব্যবহার করতে পারেন

$interestingCrawlers = array( 'google', 'yahoo' );
$pattern = '/(' . implode('|', $interestingCrawlers) .')/';
$matches = array();
$numMatches = preg_match($pattern, strtolower($_SERVER['HTTP_USER_AGENT']), $matches, 'i');
if($numMatches > 0) // Found a match
{
  // $matches[1] contains an array of all text matches to either 'google' or 'yahoo'
}

16

এই ফাংশনটি সহ এটি কোনও অনুসন্ধান ইঞ্জিন কিনা আপনি চেকআউট করতে পারেন:

<?php
function crawlerDetect($USER_AGENT)
{
$crawlers = array(
'Google' => 'Google',
'MSN' => 'msnbot',
      'Rambler' => 'Rambler',
      'Yahoo' => 'Yahoo',
      'AbachoBOT' => 'AbachoBOT',
      'accoona' => 'Accoona',
      'AcoiRobot' => 'AcoiRobot',
      'ASPSeek' => 'ASPSeek',
      'CrocCrawler' => 'CrocCrawler',
      'Dumbot' => 'Dumbot',
      'FAST-WebCrawler' => 'FAST-WebCrawler',
      'GeonaBot' => 'GeonaBot',
      'Gigabot' => 'Gigabot',
      'Lycos spider' => 'Lycos',
      'MSRBOT' => 'MSRBOT',
      'Altavista robot' => 'Scooter',
      'AltaVista robot' => 'Altavista',
      'ID-Search Bot' => 'IDBot',
      'eStyle Bot' => 'eStyle',
      'Scrubby robot' => 'Scrubby',
      'Facebook' => 'facebookexternalhit',
  );
  // to get crawlers string used in function uncomment it
  // it is better to save it in string than use implode every time
  // global $crawlers
   $crawlers_agents = implode('|',$crawlers);
  if (strpos($crawlers_agents, $USER_AGENT) === false)
      return false;
    else {
    return TRUE;
    }
}
?>

তারপরে আপনি এটি ব্যবহার করতে পারেন:

<?php $USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
  if(crawlerDetect($USER_AGENT)) return "no need to lang redirection";?>

2
আমি মনে করি এই তালিকায় পুরানো হয়, আমি "গবগব করে খাওয়া" দেখতে না উদাহরণ যা ইয়াহু জন্য এটা মাকড়সার help.yahoo.com/kb/SLN22600.html
Daan

11

বট সনাক্ত করতে আমি এটি ব্যবহার করছি:

if (preg_match('/bot|crawl|curl|dataprovider|search|get|spider|find|java|majesticsEO|google|yahoo|teoma|contaxe|yandex|libwww-perl|facebookexternalhit/i', $_SERVER['HTTP_USER_AGENT'])) {
    // is bot
}

অবাঞ্ছিত বটগুলি ব্লক করতে আমি একটি শ্বেতলিস্ট ব্যবহার করি:

if (preg_match('/apple|baidu|bingbot|facebookexternalhit|googlebot|-google|ia_archiver|msnbot|naverbot|pingdom|seznambot|slurp|teoma|twitter|yandex|yeti/i', $_SERVER['HTTP_USER_AGENT'])) {
    // allowed bot
}

একটি অবাঞ্ছিত বট (= মিথ্যা-ইতিবাচক ব্যবহারকারী) তারপরে 24 ঘন্টা নিজেকে অবরুদ্ধ করতে একটি ক্যাপচা সমাধান করতে সক্ষম হয়। এবং যেহেতু কেউ এই ক্যাপচাকে সমাধান করে না, আমি জানি এটি মিথ্যা-ধনাত্মকতা তৈরি করে না। সুতরাং বট সনাক্তকরণটি সঠিকভাবে কাজ করছে বলে মনে হচ্ছে।

দ্রষ্টব্য: আমার শ্বেত তালিকাটি ফেসবুকস রোবটস.টি.এস.টি ভিত্তিক ।


আপনি )আপনার কোডের প্রথম টুকরোটিতে একটি ক্লোজিং ভুলে গেছেন ।
লুডো - রেকর্ড বন্ধ

10

যেহেতু যে কোনও ক্লায়েন্ট ব্যবহারকারী-এজেন্টকে সেগুলি সেট করতে পারে যা তারা চায়, 'গুগলবোট', 'বিংবোট' ইত্যাদি সন্ধান করা কেবল অর্ধেক কাজ।

দ্বিতীয় অংশটি ক্লায়েন্টের আইপি যাচাই করছে is পুরানো দিনগুলিতে এই আইপি তালিকা বজায় রাখা প্রয়োজন। অনলাইনে আপনি যে সমস্ত তালিকা পেয়েছেন সেগুলি পুরানো। গুগল https://support.google.com/webmasters/answer/80553 এবং বিং http://www.bing.com/webmaster/help/how-to-verify দ্বারা ব্যাখ্যা অনুসারে শীর্ষ অনুসন্ধান ইঞ্জিনগুলি আনুষ্ঠানিকভাবে ডিএনএসের মাধ্যমে যাচাইকরণ সমর্থন করে -bingbot-3905dc26

প্রথমে ক্লায়েন্টের আইপির বিপরীত ডিএনএস লুকআপ সম্পাদন করুন। গুগলের জন্য এটি googlebot.com এর অধীনে একটি হোস্টের নাম নিয়ে আসে, বিংয়ের জন্য এটি অনুসন্ধান.msn.com এর অধীনে। তারপরে, যেহেতু কেউ তার আইপিতে এই জাতীয় বিপরীত ডিএনএস সেট করতে পারে, তাই আপনাকে সেই হোস্টনামে একটি ফরোয়ার্ড ডিএনএস লুকআপ দিয়ে যাচাই করতে হবে। যদি ফলাফলের আইপি সাইটের দর্শকদের মধ্যে একইরকম হয় তবে আপনি নিশ্চিত যে এটি সেই অনুসন্ধান ইঞ্জিনের ক্রলার।

আমি জাভাতে একটি লাইব্রেরি লিখেছি যা আপনার জন্য এই চেকগুলি সম্পাদন করে। এটিকে পিএইচপি-তে বিনা দ্বিধায় ব্যবহার করুন। এটি গিটহাবটিতে রয়েছে: https://github.com/optimaize/webcrawler-verifier


1
ব্যবহারকারী-এজেন্ট স্ট্রিংগুলি ব্যবহার করে অন্য সমস্ত উত্তরগুলি কেবলমাত্র অর্ধেক রয়েছে। কি দারুন.
mlissner

1
ব্যবহারকারী-এজেন্ট চেকিংয়ের অর্ধেক চেক হওয়ার বিষয়ে অনেক মন্তব্য রয়েছে। এটি সত্য, তবে মনে রাখবেন, সম্পূর্ণ ডিএনএস করার ক্ষেত্রে বিরাট পারফরম্যান্স প্রভাব রয়েছে এবং ডিএনএস উল্টোটি বিপরীত রয়েছে। এটি আপনার ব্যবহারের ক্ষেত্রে সমর্থন করার জন্য আপনার প্রয়োজনীয় স্তরের উপর নির্ভর করে। পারফরম্যান্স ব্যয়ে এটি 100% নিশ্চিততার জন্য। আপনার অবস্থার জন্য সঠিক ব্যালেন্সটি কী (এবং তাই সেরা সমাধান) তা আপনাকে সিদ্ধান্ত নিতে হবে।
ব্র্যাডি এমারসন

কোনও "বিশাল পারফরম্যান্স প্রভাব" নেই। প্রথমত, বিপরীত ডিএনএস লুকআপ কেবলমাত্র সেই দর্শকদের জন্য সঞ্চালিত হয় যা অনুসন্ধান ইঞ্জিন হিসাবে চিহ্নিত করে। সমস্ত মানুষ মোটেই প্রভাবিত হয় না। তারপরে, এই প্রতিচ্ছবি কেবলমাত্র আইপি প্রতি একবার করা হয়। ফলাফল ক্যাশে হয়। অনুসন্ধান ইঞ্জিনগুলি একই আইপি রেঞ্জগুলি দীর্ঘ সময়ের জন্য ব্যবহার করে রাখে এবং সাধারণত কেবলমাত্র এক বা কয়েকটি আইপি দিয়ে একটি সাইটে আঘাত করে। এছাড়াও: আপনি বৈধতা বিলম্ব করতে পারতেন। প্রথম অনুরোধটি এর মাধ্যমে আসুন, তারপরে পটভূমি-বৈধতা দিন। এবং যদি নেতিবাচক হয়, একের পর এক অনুরোধগুলি প্রতিরোধ করুন। (আমি এর বিরুদ্ধে পরামর্শ দেব কারণ ফসল তোলার ক্ষেত্রে এখন বড় আইপি পুল রয়েছে ...)
ফ্যাবিয়ান ক্যাসলার

পিএইচপি-তে কি কিছু সিমুলার লাইব্রেরি লেখা আছে?
ইউজারলন্ড

8

আমি এই ফাংশনটি ব্যবহার করি ... রেগেক্সের কিছু অংশ প্রেস্ট্যাশপ থেকে আসে তবে আমি এতে আরও কিছু বট যোগ করেছি।

    public function isBot()
{
    $bot_regex = '/BotLink|bingbot|AhrefsBot|ahoy|AlkalineBOT|anthill|appie|arale|araneo|AraybOt|ariadne|arks|ATN_Worldwide|Atomz|bbot|Bjaaland|Ukonline|borg\-bot\/0\.9|boxseabot|bspider|calif|christcrawler|CMC\/0\.01|combine|confuzzledbot|CoolBot|cosmos|Internet Cruiser Robot|cusco|cyberspyder|cydralspider|desertrealm, desert realm|digger|DIIbot|grabber|downloadexpress|DragonBot|dwcp|ecollector|ebiness|elfinbot|esculapio|esther|fastcrawler|FDSE|FELIX IDE|ESI|fido|H�m�h�kki|KIT\-Fireball|fouineur|Freecrawl|gammaSpider|gazz|gcreep|golem|googlebot|griffon|Gromit|gulliver|gulper|hambot|havIndex|hotwired|htdig|iajabot|INGRID\/0\.1|Informant|InfoSpiders|inspectorwww|irobot|Iron33|JBot|jcrawler|Teoma|Jeeves|jobo|image\.kapsi\.net|KDD\-Explorer|ko_yappo_robot|label\-grabber|larbin|legs|Linkidator|linkwalker|Lockon|logo_gif_crawler|marvin|mattie|mediafox|MerzScope|NEC\-MeshExplorer|MindCrawler|udmsearch|moget|Motor|msnbot|muncher|muninn|MuscatFerret|MwdSearch|sharp\-info\-agent|WebMechanic|NetScoop|newscan\-online|ObjectsSearch|Occam|Orbsearch\/1\.0|packrat|pageboy|ParaSite|patric|pegasus|perlcrawler|phpdig|piltdownman|Pimptrain|pjspider|PlumtreeWebAccessor|PortalBSpider|psbot|Getterrobo\-Plus|Raven|RHCS|RixBot|roadrunner|Robbie|robi|RoboCrawl|robofox|Scooter|Search\-AU|searchprocess|Senrigan|Shagseeker|sift|SimBot|Site Valet|skymob|SLCrawler\/2\.0|slurp|ESI|snooper|solbot|speedy|spider_monkey|SpiderBot\/1\.0|spiderline|nil|suke|http:\/\/www\.sygol\.com|tach_bw|TechBOT|templeton|titin|topiclink|UdmSearch|urlck|Valkyrie libwww\-perl|verticrawl|Victoria|void\-bot|Voyager|VWbot_K|crawlpaper|wapspider|WebBandit\/1\.0|webcatcher|T\-H\-U\-N\-D\-E\-R\-S\-T\-O\-N\-E|WebMoose|webquest|webreaper|webs|webspider|WebWalker|wget|winona|whowhere|wlm|WOLP|WWWC|none|XGET|Nederland\.zoek|AISearchBot|woriobot|NetSeer|Nutch|YandexBot|YandexMobileBot|SemrushBot|FatBot|MJ12bot|DotBot|AddThis|baiduspider|SeznamBot|mod_pagespeed|CCBot|openstat.ru\/Bot|m2e/i';
    $userAgent = empty($_SERVER['HTTP_USER_AGENT']) ? FALSE : $_SERVER['HTTP_USER_AGENT'];
    $isBot = !$userAgent || preg_match($bot_regex, $userAgent);

    return $isBot;
}

যাইহোক, যত্নবান হন যে কিছু বটগুলি তাদের পরিচয় নকল করতে ব্যবহারকারী এজেন্টের মতো ব্রাউজার ব্যবহার করে
(আমি অনেক রাশিয়ান আইপি পেয়েছি যা আমার সাইটে এই আচরণ করে)

বটের বেশিরভাগের একটি স্বতন্ত্র বৈশিষ্ট্য হ'ল তারা কোনও কুকি রাখেন না এবং তাই কোনও সেশন তাদের সাথে সংযুক্ত থাকে না।
(আমি জানি না কীভাবে তবে এটি নিশ্চিত যে এটি ট্র্যাক করার সর্বোত্তম উপায়)


6

আপনি ব্যবহারকারী এজেন্ট ( $_SERVER['HTTP_USER_AGENT']) বিশ্লেষণ করতে পারেন বা ক্লায়েন্টের আইপি ঠিকানা ( $_SERVER['REMOTE_ADDR']) এর সাথে সার্চ ইঞ্জিন বটগুলির আইপি অ্যাড্রেসের তালিকার তুলনা করতে পারেন ।


2
আইপি তালিকাটি আরও সুরক্ষিত যদি আপনি ব্যবহারকারীর এজেন্ট নাম সম্পর্কে সত্যতা নিশ্চিত করতে চান তবে একটি সার্চ ইঞ্জিনের বট, কারণ নাম দ্বারা ভুয়া ব্যবহারকারী-এজেন্ট তৈরি করা সম্ভব।
মোজতাবা রেজাeিয়ান

5

ডিভাইস ডিটেক্টর ওপেন সোর্স লাইব্রেরিটি ব্যবহার করুন, এটি একটি আইসবট () ফাংশন দেয়: https://github.com/piwik/device-detector


দ্রষ্টব্য: এই লাইব্রেরিটি কেবল ব্যবহারকারী এজেন্টকে বট হয় কিনা তা নির্ধারণের জন্য বিশ্লেষণ করে।
ফিলিপ

খুব ভারী, কেবল একটি যাচাই বট পরীক্ষা করতে।
জোয়েল জেমস

4
 <?php // IPCLOACK HOOK
if (CLOAKING_LEVEL != 4) {
    $lastupdated = date("Ymd", filemtime(FILE_BOTS));
    if ($lastupdated != date("Ymd")) {
        $lists = array(
        'http://labs.getyacg.com/spiders/google.txt',
        'http://labs.getyacg.com/spiders/inktomi.txt',
        'http://labs.getyacg.com/spiders/lycos.txt',
        'http://labs.getyacg.com/spiders/msn.txt',
        'http://labs.getyacg.com/spiders/altavista.txt',
        'http://labs.getyacg.com/spiders/askjeeves.txt',
        'http://labs.getyacg.com/spiders/wisenut.txt',
        );
        foreach($lists as $list) {
            $opt .= fetch($list);
        }
        $opt = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $opt);
        $fp =  fopen(FILE_BOTS,"w");
        fwrite($fp,$opt);
        fclose($fp);
    }
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
    $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
    $agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    $host = strtolower(gethostbyaddr($ip));
    $file = implode(" ", file(FILE_BOTS));
    $exp = explode(".", $ip);
    $class = $exp[0].'.'.$exp[1].'.'.$exp[2].'.';
    $threshold = CLOAKING_LEVEL;
    $cloak = 0;
    if (stristr($host, "googlebot") && stristr($host, "inktomi") && stristr($host, "msn")) {
        $cloak++;
    }
    if (stristr($file, $class)) {
        $cloak++;
    }
    if (stristr($file, $agent)) {
        $cloak++;
    }
    if (strlen($ref) > 0) {
        $cloak = 0;
    }

    if ($cloak >= $threshold) {
        $cloakdirective = 1;
    } else {
        $cloakdirective = 0;
    }
}
?>

এটি মাকড়সাগুলির জন্য পরিচ্ছন্নতার আদর্শ উপায়। এটি [ওয়াইএসিজি] - http://getyacg.com নামে একটি ওপেন সোর্স স্ক্রিপ্ট থেকে এসেছে

কিছুটা কাজের দরকার, তবে অবশ্যই যাওয়ার উপায়।


2

আমি এর জন্য একটি ভাল এবং দ্রুত ফাংশন করেছি

function is_bot(){

        if(isset($_SERVER['HTTP_USER_AGENT']))
        {
            return preg_match('/rambler|abacho|acoi|accona|aspseek|altavista|estyle|scrubby|lycos|geona|ia_archiver|alexa|sogou|skype|facebook|twitter|pinterest|linkedin|naver|bing|google|yahoo|duckduckgo|yandex|baidu|teoma|xing|java\/1.7.0_45|bot|crawl|slurp|spider|mediapartners|\sask\s|\saol\s/i', $_SERVER['HTTP_USER_AGENT']);
        }

        return false;
    }

এটি সমস্ত সম্ভাব্য বট, অনুসন্ধান ইঞ্জিন ইত্যাদির 99% কভার করে


1

আমি এই কোডটি ব্যবহার করছি, বেশ ভাল। আপনি খুব সহজেই ব্যবহারকারী-এজেন্টরা আপনার সাইটটি পরিদর্শন করতে পারবেন। এই কোডটি একটি ফাইল খুলছে এবং ব্যবহারকারী_এজেন্ট ফাইলটি লিখবে। আপনি এই ফাইলটি প্রতিদিন yourdomain.com/useragent.txtনতুন ইউজার_এজেন্টস সম্পর্কে জানতে এবং পরীক্ষা করে পরীক্ষা করতে পারেন এবং যদি ক্লজটি আপনার শর্তে রেখেছেন।

$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
if(!preg_match("/Googlebot|MJ12bot|yandexbot/i", $user_agent)){
    // if not meet the conditions then
    // do what you need

    // here open a file and write the user_agent down the file. You can check each day this file useragent.txt and know about new user_agents and put them in your condition of if clause
    if($user_agent!=""){
        $myfile = fopen("useragent.txt", "a") or die("Unable to open file useragent.txt!");
        fwrite($myfile, $user_agent);
        $user_agent = "\n";
        fwrite($myfile, $user_agent);
        fclose($myfile);
    }
}

এটি Useragent.txt এর সামগ্রী

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; MJ12bot/v1.4.6; http://mj12bot.com/)Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)mozilla/5.0 (compatible; yandexbot/3.0; +http://yandex.com/bots)
mozilla/5.0 (compatible; yandexbot/3.0; +http://yandex.com/bots)
mozilla/5.0 (compatible; yandexbot/3.0; +http://yandex.com/bots)
mozilla/5.0 (compatible; yandexbot/3.0; +http://yandex.com/bots)
mozilla/5.0 (compatible; yandexbot/3.0; +http://yandex.com/bots)
mozilla/5.0 (iphone; cpu iphone os 9_3 like mac os x) applewebkit/601.1.46 (khtml, like gecko) version/9.0 mobile/13e198 safari/601.1
mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/53.0.2785.143 safari/537.36
mozilla/5.0 (compatible; linkdexbot/2.2; +http://www.linkdex.com/bots/)
mozilla/5.0 (windows nt 6.1; wow64; rv:49.0) gecko/20100101 firefox/49.0
mozilla/5.0 (windows nt 6.1; wow64; rv:33.0) gecko/20100101 firefox/33.0
mozilla/5.0 (windows nt 6.1; wow64; rv:49.0) gecko/20100101 firefox/49.0
mozilla/5.0 (windows nt 6.1; wow64; rv:33.0) gecko/20100101 firefox/33.0
mozilla/5.0 (windows nt 6.1; wow64; rv:49.0) gecko/20100101 firefox/49.0
mozilla/5.0 (windows nt 6.1; wow64; rv:33.0) gecko/20100101 firefox/33.0
mozilla/5.0 (windows nt 6.1; wow64; rv:49.0) gecko/20100101 firefox/49.0
mozilla/5.0 (windows nt 6.1; wow64; rv:33.0) gecko/20100101 firefox/33.0
mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/53.0.2785.143 safari/537.36
mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/53.0.2785.143 safari/537.36
mozilla/5.0 (compatible; baiduspider/2.0; +http://www.baidu.com/search/spider.html)
zoombot (linkbot 1.0 http://suite.seozoom.it/bot.html)
mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/44.0.2403.155 safari/537.36 opr/31.0.1889.174
mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/44.0.2403.155 safari/537.36 opr/31.0.1889.174
sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/44.0.2403.155 safari/537.36 opr/31.0.1889.174

এর জন্য আপনার (if_clause) স্ট্রিং পিসটি কী হবে? মোজিলা / 5.0 (আইফোন; সিপিইউ আইফোন ও 9 9 ম্যাক ওএস এক্স এর মতো) আপেলওয়েবকিট / 601.1.46 (কেএইচটিএমএল, জেকোর মতো) সংস্করণ / 9.0 মোবাইল / 13e198 সাফারি / 601.1
গড় জো

1

100% ওয়ার্কিং বট ডিটেক্টর। এটি সফলভাবে আমার ওয়েবসাইটে কাজ করছে।

function isBotDetected() {

    if ( preg_match('/abacho|accona|AddThis|AdsBot|ahoy|AhrefsBot|AISearchBot|alexa|altavista|anthill|appie|applebot|arale|araneo|AraybOt|ariadne|arks|aspseek|ATN_Worldwide|Atomz|baiduspider|baidu|bbot|bingbot|bing|Bjaaland|BlackWidow|BotLink|bot|boxseabot|bspider|calif|CCBot|ChinaClaw|christcrawler|CMC\/0\.01|combine|confuzzledbot|contaxe|CoolBot|cosmos|crawler|crawlpaper|crawl|curl|cusco|cyberspyder|cydralspider|dataprovider|digger|DIIbot|DotBot|downloadexpress|DragonBot|DuckDuckBot|dwcp|EasouSpider|ebiness|ecollector|elfinbot|esculapio|ESI|esther|eStyle|Ezooms|facebookexternalhit|facebook|facebot|fastcrawler|FatBot|FDSE|FELIX IDE|fetch|fido|find|Firefly|fouineur|Freecrawl|froogle|gammaSpider|gazz|gcreep|geona|Getterrobo-Plus|get|girafabot|golem|googlebot|\-google|grabber|GrabNet|griffon|Gromit|gulliver|gulper|hambot|havIndex|hotwired|htdig|HTTrack|ia_archiver|iajabot|IDBot|Informant|InfoSeek|InfoSpiders|INGRID\/0\.1|inktomi|inspectorwww|Internet Cruiser Robot|irobot|Iron33|JBot|jcrawler|Jeeves|jobo|KDD\-Explorer|KIT\-Fireball|ko_yappo_robot|label\-grabber|larbin|legs|libwww-perl|linkedin|Linkidator|linkwalker|Lockon|logo_gif_crawler|Lycos|m2e|majesticsEO|marvin|mattie|mediafox|mediapartners|MerzScope|MindCrawler|MJ12bot|mod_pagespeed|moget|Motor|msnbot|muncher|muninn|MuscatFerret|MwdSearch|NationalDirectory|naverbot|NEC\-MeshExplorer|NetcraftSurveyAgent|NetScoop|NetSeer|newscan\-online|nil|none|Nutch|ObjectsSearch|Occam|openstat.ru\/Bot|packrat|pageboy|ParaSite|patric|pegasus|perlcrawler|phpdig|piltdownman|Pimptrain|pingdom|pinterest|pjspider|PlumtreeWebAccessor|PortalBSpider|psbot|rambler|Raven|RHCS|RixBot|roadrunner|Robbie|robi|RoboCrawl|robofox|Scooter|Scrubby|Search\-AU|searchprocess|search|SemrushBot|Senrigan|seznambot|Shagseeker|sharp\-info\-agent|sift|SimBot|Site Valet|SiteSucker|skymob|SLCrawler\/2\.0|slurp|snooper|solbot|speedy|spider_monkey|SpiderBot\/1\.0|spiderline|spider|suke|tach_bw|TechBOT|TechnoratiSnoop|templeton|teoma|titin|topiclink|twitterbot|twitter|UdmSearch|Ukonline|UnwindFetchor|URL_Spider_SQL|urlck|urlresolver|Valkyrie libwww\-perl|verticrawl|Victoria|void\-bot|Voyager|VWbot_K|wapspider|WebBandit\/1\.0|webcatcher|WebCopier|WebFindBot|WebLeacher|WebMechanic|WebMoose|webquest|webreaper|webspider|webs|WebWalker|WebZip|wget|whowhere|winona|wlm|WOLP|woriobot|WWWC|XGET|xing|yahoo|YandexBot|YandexMobileBot|yandex|yeti|Zeus/i', $_SERVER['HTTP_USER_AGENT'])
    ) {
        return true; // 'Above given bots detected'
    }

    return false;

} // End :: isBotDetected()

1

আপনার যদি সত্যই গুগল ইঞ্জিনের বটগুলি সনাক্ত করতে হয় তবে আপনাকে কখনই "ইউজার_এজেন্ট" বা "আইপি" ঠিকানার উপর নির্ভর করা উচিত নয় কারণ "ইউজার_এজেন্ট" পরিবর্তন করা যায় এবং গুগল যা বলেছিল তার সাথে মিল রেখে: গুগলবট যাচাই করা হচ্ছে

কলকারী হিসাবে গুগলবোট যাচাই করতে:

1. হোস্ট কমান্ডটি ব্যবহার করে আপনার লগগুলি থেকে আইপি ঠিকানা অ্যাক্সেস করার জন্য একটি বিপরীত ডিএনএস লুকআপ চালান ।

2. যাচাই করুন যে ডোমেনের নামটি googlebot.com বা google.com এ রয়েছে

৩. পুনরুদ্ধারকৃত ডোমেন নেমে হোস্ট কমান্ডটি ব্যবহার করে পদক্ষেপ 1 এ পুনরুদ্ধার করা ডোমেন নামটির জন্য একটি ফরোয়ার্ড ডিএনএস লুকুন চালান । এটি নিশ্চিত করুন যে এটি আপনার লগগুলি থেকে আসল অ্যাক্সেসিং আইপি ঠিকানার মতো।

আমার পরীক্ষিত কোডটি এখানে:

<?php
$remote_add=$_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($remote_add);
$googlebot = 'googlebot.com';
$google = 'google.com';
if (stripos(strrev($hostname), strrev($googlebot)) === 0 or stripos(strrev($hostname),strrev($google)) === 0 ) 
{
//add your code
}

?>

এই কোডটিতে আমরা "হোস্টনাম" যাচাই করি যা "হোস্টনেম" এর শেষে "googlebot.com" বা "google.com" থাকা উচিত যা সাবডোমেন নয় সঠিক ডোমেনটি পরীক্ষা করা সত্যিই গুরুত্বপূর্ণ। আমি আশা করি তুমি উপভোগ করবে ;)


0

গুগলের জন্য আমি এই পদ্ধতিটি ব্যবহার করছি।

function is_google() {
    $ip   = $_SERVER['REMOTE_ADDR'];
    $host = gethostbyaddr( $ip );
    if ( strpos( $host, '.google.com' ) !== false || strpos( $host, '.googlebot.com' ) !== false ) {

        $forward_lookup = gethostbyname( $host );

        if ( $forward_lookup == $ip ) {
            return true;
        }

        return false;
    } else {
        return false;
    }

}

var_dump( is_google() );

ক্রেডিট: https://support.google.com/webmasters/answer/80553


-1
function bot_detected() {

  if(preg_match('/bot|crawl|slurp|spider|mediapartners/i', $_SERVER['HTTP_USER_AGENT']){
    return true;
  }
  else{
    return false;
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.