Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.6680
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 07.02.2009, 12:29   #1
Joyen
Чеченец нах
 
Аватар для Joyen
 
Регистрация: 06.04.2007
Сообщений: 344
Бабло: $8390
По умолчанию Фиксация прихода Google-Bot

Всем доброго! Парни, интересует вот что, как написать такой маленький кусочек кода на js, который анализирует юзер-агент и если это гуглобот, то фоново вызывает пхп скрипт на стороннем домене. Это нужно просто чтобы фиксануть частоту посещения ботом разных сайтов. На псевдоязыке
это что-то вроде if (user_agent=="GoogleBot") вызвать("domen.com/som.php");
Важно чтобы вызов не был редиректом, а осуществился как бы в фоне, т.е. фиксация бота осталась незамеченной.
Joyen вне форума  
Старый 07.02.2009, 12:33   #2
Hector
Статус кво
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: California
Сообщений: 11,244
Бабло: $1448050
Отправить сообщение для Hector с помощью ICQ
По умолчанию

это наверное нужно аяксом, могу ошибаться
__________________
----
Hector вне форума  
Старый 07.02.2009, 13:07   #3
Joyen
Чеченец нах
 
Аватар для Joyen
 
Регистрация: 06.04.2007
Сообщений: 344
Бабло: $8390
ТС -->
автор темы ТС По умолчанию

я думаю это аля счетчик ведь и мутится в направлении фрейма
Joyen вне форума  
Старый 07.02.2009, 13:13   #4
Hector
Статус кво
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: California
Сообщений: 11,244
Бабло: $1448050
Отправить сообщение для Hector с помощью ICQ
По умолчанию

Наверное все таки спец счетчик. Вообще пхп скрипт можно дернуть вот так: <img src="ссылка на скрипт" /> В пхп скрипте уже узнать $_SERVER = 'HTTP_USER_AGENT' или 'HTTP_HOST'. А какие признаки у гуглобота?

В любом случае в яве я не сильно пока разобрался, ждем знающих людей. Идея интересная.

П А вот кстати как бота ловить http://www.google.com/support/webmas...y?answer=80553 и вот http://www.google.co.uk/intl/en_uk/webmasters/bot.html
__________________
----
Hector вне форума  
Старый 07.02.2009, 13:24   #5
deschain
Senior Member
 
Аватар для deschain
 
Регистрация: 01.11.2007
Сообщений: 2,275
Бабло: $288535
По умолчанию

Так обычный гугл бот не выполнит ява-скрипт.
Вариант решения - делаем пустую картинку, куда вставляем переменную с юзер-агентом, на пхп:

<img src="http://domain.com/script.php?agent=<?=$HTTP_USER_AGENT;?>" width="0" height="0" />

в script.php проверяем, если содержит переменная $_GET['agent'] Google:

if (preg_match('/google/i', $_GET['agent'])) {
здесь записываем данные
}
deschain вне форума  
Старый 07.02.2009, 13:35   #6
LeXxiK
Senior Member
 
Аватар для LeXxiK
 
Регистрация: 03.03.2008
Сообщений: 2,248
Бабло: $257105
По умолчанию

фсё гениальное просто
LeXxiK вне форума  
Старый 07.02.2009, 13:37   #7
Hector
Статус кво
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: California
Сообщений: 11,244
Бабло: $1448050
Отправить сообщение для Hector с помощью ICQ
По умолчанию

deschain все верно расписал ) ничего больше выдумывать не нужно )) Как обычно респект
__________________
----
Hector вне форума  
Старый 07.02.2009, 13:41   #8
imgreen
Lion King
 
Аватар для imgreen
 
Регистрация: 15.11.2008
Сообщений: 12,074
Бабло: $247698106
По умолчанию

Про вызов php скрипта как картинки не знал, респект
imgreen вне форума  
Старый 07.02.2009, 13:59   #9
deschain
Senior Member
 
Аватар для deschain
 
Регистрация: 01.11.2007
Сообщений: 2,275
Бабло: $288535
По умолчанию

Накидал быстро полный скрипт.

Создаем на сервере пхп-файл, в него кидаем:

Код:
<?
	@error_reporting(0);

	if (isset($_GET['agent']) && !empty($_GET['agent'])) {
		
		$agents = array();
		$agents[] = array('name' => 'Google', 'search' => 'google');
		$agents[] = array('name' => 'Yahoo', 'search' => 'yahoo');
		
		if (is_array($agents)) {
			foreach ($agents as $agent) {
				if (preg_match('/'. $agent['search'] .'/i', urldecode($_GET['agent']))) {

					$f = @fopen("./bots.txt", "a");
					@flock($f, LOCK_EX);
					@set_file_buffer($f, 0);
					
					@fwrite($f, date("Y-m-d H:i:s") . " - ". $agent['name'] ." - ". $_SERVER["HTTP_REFERER"] ."\n"); // Записываем в файл 

					@fflush($f);
					@flock($f, LOCK_UN);
					@fclose($f);
				}
			}
		}
	}

	header("Content-type: image/gif");
	$im = imagecreate(1, 1);
	$white = imagecolorallocate($im, 255, 255, 255);
	imagefill($im, 0, 0, $white);
	imagegif($im);
	imagedestroy($im);
?>
создаем рядом файл bots.txt, в который всё будет писаться. Даем права на запись. Можно любой другой файл и подправить эту строку в скрипте.

Можно добавить свои юзер-агенты для записи, значение name - то что запишется в файл, значение search - подстрока для поиска в юзер-агенте.

Подключаем на страницу строкой вида:

Код:
<img src="http://domain.com/script.php?agent=<?=urlencode($HTTP_USER_AGENT);?>" width="0" height="0" />
В итоге, в файлике bots.txt получаем, что-то вроде:

2009-02-07 16:51:20 - Google - http://domain.com/bots_trap.html
2009-02-07 16:54:03 - Yahoo - http://domain.com/bots_trap.html

Где http://domain.com/bots_trap.html - это страничка, с которой была вызвана картинка-скрипт.
deschain вне форума  
Старый 07.02.2009, 14:11   #10
Hector
Статус кво
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: California
Сообщений: 11,244
Бабло: $1448050
Отправить сообщение для Hector с помощью ICQ
По умолчанию

@flock и @fflush - вот не знаю зачем усложняешь? ) я просто еще не супер в пхп ) и картинку вроде не обязательно создавать )
И еще одно.
PHP код:
<img src="http://domain.com/script.php?agent=<?=urlencode($HTTP_USER_AGENT);?>" width="0" height="0" />
На многих ресурсах ПХП не вставить. Лучше скрипт переделать.
__________________
----
Hector вне форума  
Закрытая тема



Опции темы
Опции просмотра