Удалить повторяющиеся строки   •   Online-инструменты
499 просм
0 комм
Поделиться:

Как определить, что посетитель вашего сайта поисковый робот, а не человек на PHP?

Почти каждое устройство в сети Интернет при посещении того или иного сайта посылает так называемых «User Agent», некую информацию в виде названия операционной системы, языка, IP-адреса и прочих параметров.

Некоторые из этих данных динамичны (меняются с течением времени), а некоторые – статичны, то есть не изменяются. По заголовку, посылаемому браузером посетителя к вашему веб-сайту, мы можем определить, является ли он человеком или же поисковым роботом.

Для такого определения мы воспользуемся PHP и готовой для него функцией определения популярных поисковых ботов.

Сама функция выглядит так:

function isBot(&$botname = "") {
	
	$bots = array(
		"h1.hrn.ru", "gigabot", "yandeG", "igde.ru", "turtle", "yandexSomething", "feedfetcher-google", "aboutusbot",
		"liveinternet.ru", "mail.ru", "sape.bot", "scoutjet", "yaDirectBot", "shrinktheweb.com", "askpeter.info", "dotnetdotcom",
		"AdsBot-Google", "seo-rus.com", "omsktele", "megadownload.net", "msnbot", "yandex", "qwartabot", "yanga.co.uk",
		"googlealert.com", "rambler", "appEngine-google", "googlebot", "alexa.com", "dataparksearch", "yahoo", "yetibot",
		"oozbot", "similarpages", "bing.com", "google-sitemaps", "followsite.com", "xml-sitemaps.com", "aport", "snapbot",
		"Copyscape.com", "domaintools.com", "picsearch", "ask.com", "sape_context", "Nigma.ru", "agama", "metadatalabs.com"
	);
	
	foreach($bots as $bot) {
	
		if(stripos($_SERVER["HTTP_USER_AGENT"], $bot) !== false) {
		
			$botname = $bot;

			return true;
			
		}
		
	}
	
	return false;

}

И вот пример ее использования:

if(isBot($bname)) { // Условие, если это бот

	// Делаем действие
   
}

Функция содержит в себе идентификаторы всех популярных поисковых роботов. По желанию вы можете дополнить их своим списком или, например, ограничиться только определенными ботами.

0
комментариев
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.