PDA

View Full Version : سوال: چطور میشه تشخیص داد که بازدید کننده از سایت ربوت بوده یا خیر



hamidhassas
پنج شنبه 13 شهریور 1393, 11:48 صبح
چطور میشه تشخیص داد که بازدید کننده از سایت ربوت بوده یا خیر

Golsha
پنج شنبه 13 شهریور 1393, 13:00 عصر
با استفاده از یکی از کلید های $_SERVER[] که الان یادم نیست . گفتم شاید بتونه کمکی بکنه که تو گوگل سرچ کنید. :لبخند:

مهرداد سیف زاده
پنج شنبه 13 شهریور 1393, 13:11 عصر
کد زیر هم میتونه مفید باشه


<?php


function _bot_detected() {


if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
return TRUE;
}
else {
return FALSE;
}


}


if(_bot_detected())
echo 'robot !';
else
echo 'not robot';

omidabedi
پنج شنبه 13 شهریور 1393, 14:20 عصر
این کدی که دوستمون گذاشته برای bot های نرم افزاری و شناخته شده که مرورگر اختصاصی دارند کارایی داره و هر botی رو شامل نمیشه علاوه بر این user agent قابل دستکاری هست توسط کاربر که میتونه یک رباط باشه.

بیشتر bot های تحت وب با curl نوشته شدن و فقط میشه از چیز هایی مثل ip و تعداد درخواست در هر 1 ی 2 ثانیه و چیزی دیگه مثل user agent و... فهمید که این bot هست یا نه این فقط یه مثال بود

چرا که هر رباطی با هدف خاصی درخواست میده

یکی اسپمر هست یکی محتوا رو میخواد و...

که هرکدومش رو نمیشه تشخیص داد

hamidhassas
پنج شنبه 13 شهریور 1393, 23:55 عصر
کد زیر هم میتونه مفید باشه


<?php


function _bot_detected() {


if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
return TRUE;
}
else {
return FALSE;
}


}


if(_bot_detected())
echo 'robot !';
else
echo 'not robot';


این کد که درست کار نمیکنه وقتی این کد رو روی سایت قرار میدم کلیه کاربرانی که آدرس سایت رو به صورت مستقیم نه با کمک هیچ لینکی باز میکنن رو ربوت تشخیص میده و فقط اون کاربرانی که با لینک سایت رو باز میکنن مجاز میشناسه