Parsi Coders
نحوه تشخیص خزنده ی گوگل (Googlebot) با PHP - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Web Development and Design (http://parsicoders.com/forumdisplay.php?fid=47)
+--- انجمن: PHP Forum (http://parsicoders.com/forumdisplay.php?fid=48)
+--- موضوع: نحوه تشخیص خزنده ی گوگل (Googlebot) با PHP (/showthread.php?tid=544)



نحوه تشخیص خزنده ی گوگل (Googlebot) با PHP - Ghoghnus - 07-21-2011


تا بحال فکر کرده اید که چگونه می توان خزنده های مختلف را از طریق برنامه نویسی تشخیص داد، در این مقاله سعی بر آن است تا خزنده ی Googlebot شرکت گوگل را شناسائی کنیم و در این مثال اگر خزنده گوگل نباشد متغیری را مقدار درست خواهیم داد که در واقع فرضا کار noindex ما را انجام دهد.

در کد زیر با استفاده از تابع gethostbyaddr می توانیم یک ip به تابع بدهیم و نام میزبان را دریافت کنیم.

با تابع gethostbyname هم می توانیم نام سایتی را به تابع بدهیم و Ip آن را دریافت کنیم.

با تابع stripos هم بررسی میکنیم که آیا googlebot در متغیر $name اتفاق افتاده است یا خیر؟
کد:
$do_noindex=0;



$ip= $_SERVER['REMOTE_ADDR'];

If (preg_match('/googlebot/i',$_SERVER['HTTP_USER_AGENT'])) {



   $name= gethostbyaddr($ip);

   $host= gethostbyname($name);

If ($host==$ip && stripos($name,'googlebot')!==false) {

   // valid Googlebot

   Echo '';

} else {

   // not actually Googlebot

   echo '';

   $do_noindex=1;

}

}

if ($do_noindex==1) {

   print "\n";

}


هیچ تفاوتی به یافتن خزنده ی گوگل با دیگر خرنده ها وجود ندارد فقط کافی است نام آن خزنده را بدانید برای مثال برای موتور بینگ نام خزنده، msnbot می باشد.