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 | } |