View difference between Paste ID: t5StnJ4S and nx2aq4ae
SHOW: | | - or go back to the newest paste.
1
<?php
2
// используем так:
3
4
$gb = googlebot_check();
5
if ($gb == 1) {echo »Fuck off. User-Agent containing ‘googlebot’ != Googlebot!»;}
6
7
/* Функция возвращает:
8
0 — если Юзерагент не содержит googlebot
9
1 — если Юзерагент содержит googlebot, но ип не проходит тест описанный выше. Это хитрые конкуренты, которые поставили себе юзерагент гугла.
10
2 — это на 99.99% гуглбот. Почему не 100%? Потому-что всякое бывает. От взлома DNS, до чего-то, о чем я даже не знаю.
11
Те, кто прячется за клаудфлейр и другими подобными сервисами, не забывайте обновлять $_SERVER[‘REMOTE_ADDR’] в скрипте. Чтобы получать реальный ИП, а не ИП сервиса. Костыли можно найти в гугле для каждого сервиса.
12
*/
13
14
15
function googlebot_check(){
16
	if ( false === stristr($_SERVER[‘HTTP_USER_AGENT’], ‘googlebot’) ) return 0;
17
	$hostname = gethostbyaddr($_SERVER[‘REMOTE_ADDR’]);
18
	if ( false === stristr($hostname, ‘googlebot’) ) return 1;
19
	if($_SERVER[‘REMOTE_ADDR’] != gethostbyname($hostname)) return 1;
20
	return 2;
21
}