07-21-2011، 11:07 AM
تا بحال فکر کرده اید که چگونه می توان خزنده های مختلف را از طریق برنامه نویسی تشخیص داد، در این مقاله سعی بر آن است تا خزنده ی 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 می باشد.