Клоакинг по реферу

Тема в разделе "Вопросы новичков", создана пользователем RedRabbit, 26 мар 2012.

  1. RedRabbit

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    608
    Симпатии:
    251
    С создание скрипта по реферу вроде бы проблем нет. Но вопрос по логике.
    Делаю скрипт:
    1. Если человек зашел с гугла с рефером, то показываю одно.
    2. Если без рефера, то другое.
    Но вот в чем загвоздка, боты же заходят без рефера?
    Где человеческие базы найти айпишников ботов? Есть поделитесь)
    Есть одна, но маленькая. Если апишника нет в базе, боту будет подсовываться не то. Фигово скажется на индексации. Да и вообще может сразу в бан.
    Впринципе это все делается для дорвеев под адалт. Что бы админы не заблокировали акк так быстро.
    Может быть есть достойные готовые решения, а не куски кода?
    Вот пример. Может у Вас есть свои наработки?
    Код:
    <?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() ;
                }
            }
        }
    ?>
    // тут должно быть содержимое оригинальной страницы
     
    Юрец нравится это.
  2. 22Striker22

    22Striker22 Постоялец

    Регистр.:
    17 янв 2008
    Сообщения:
    107
    Симпатии:
    69
    Собирать самому (в той де симлтдс есть стата по ип ботов пс), хорошие базы вряд ли кто спалит.
     
  3. idimka

    idimka

    Регистр.:
    31 авг 2007
    Сообщения:
    219
    Симпатии:
    52
    ip проверять по хуиз и если там где-то встречается google или yandex то это значит бот. таким образом собирается нужная база ip поисковых ботов. копать в сторону php скриптов для определения хузи данных. сам в свое время писал подобный скрипт именно на его основе.
     
  4. Bananas Papaz

    Bananas Papaz Создатель

    Регистр.:
    1 дек 2009
    Сообщения:
    24
    Симпатии:
    4
    Могу повесить такой скрипт на свою TDS и по прошествии времени поделится с вами базой.
    Сейчас в "Симпле" айпишников ботов не так уж много (хотя количество переходов приличное), видимо из-за того, что механизм определения оных, не очень совершенен.
     
  5. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    358
    Симпатии:
    36
    гугл последние пол года начал лазить под проксяками активно, в основном университеткими, базу надо ежедневно обновлять.
     
  6. Lyev

    Lyev Создатель

    Регистр.:
    19 ноя 2009
    Сообщения:
    37
    Симпатии:
    4
    вот тоже решаю такую задачку, только ставлю эксперимент не много по другому, т.е. иду не от ботов и их айпи, а от того пришел юзер с ПС или нет, если с ПС то вывожу фрейм платника, если юзер идет с закладки или на прямую по урлу то отправляю гуглить. А боту вообще ниче не показываю, пускай по дору лазит индексирует. Если сам кодер стукни в личку обсудим.
     
  7. SuperMega_info

    SuperMega_info Создатель

    Регистр.:
    22 сен 2011
    Сообщения:
    44
    Симпатии:
    20
    Я бы для зашедших без рефера просто плавающий див поверх контента наложил. Поисковикам он не мешает. Тем более, что содержимое этого дива можно в js подгрузить, чтобы не индексировалось.