• 14-08-2012, 18:19:44
    #1
    Sitenizi ziyaret eden arama motoru robotlarını tespit etmek için gerekli kısa bir kod
    Sitenizi normal kullanıcılar gibi arama motorları da ziyaret etmektedir, eğer arama motorları sitenizi ziyaret ettiğinde bunu kayıt etmek veya farklı bir içerik göstermek istiyorsanız bu kodu kullanabilirsiniz. Ama şunu söylemeliyim ki arama motoru botları her zaman görünür halde gelmeyebilirler, normal kullanıcı gibi görünüp gelebilirler, farklı içerik göstermek riskli olabilir, arama motorunu kandırmaya çalıştığınızı farkederler. Özellikle istatistik için kullanabilirsiniz, botların sitenizi ne kadar ziyaret ettiği vs.

    neyseee.

    $useragent=$_SERVER['HTTP_USER_AGENT']; 
    //bu satır ile gelen ziyaretçinin tarayıcısı  hakkında bilgi alıyoruz,  
    //sonraki satır ise ziyaretçinin tarayıcı bilgileri içinde googlebot kelimesini arayalım, ve eğer varsa bazı işlemler yapacağız 
    if(preg_match("/Googlebot/",$useragent)) 
    { 
        //basit olarak bot ziyaretlerini log.txt dosyasını atmayı düşündüm, 777 vermeyi unutmayalım 
        $fp = fopen("log.txt", 'a'); 
        //ben sadece useragent ifadesini kaydediyorum, siz tarih ip vs bilgileri ekleyebilirsiniz 
        fwrite($fp,"$useragent rn"); 
        fclose($fp); 
    }
    Örnek googlebot tarayıcı kimliği şu şekilde olabilir
    Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    Diğer arama motoru botları içinde bu ifade yazılabilir. yahoo,msn,slurp vs.
    Bu durumda ifadeyi şu şekle çevirebiliriz.

    if(preg_match("/Googlebot/",$useragent) or preg_match("/Yahoo/",$useragent))
  • 16-08-2012, 11:25:11
    #2
    bu da benim kullandığım

    function botbul($userAgent) {
     $crawlers = array("Google","Googlebot","Adsbot-Google","Googlebot-Image","Googlebot-Mobile","Googlebot-News","MSNBot","MSNBot-Media","MSNBot-News","MSNPTC","Bing","Bingbot","Slurp","Baiduspider","Rambler","Yahoo","Yahoo-MMCrawler","Yandex","YandexBot","YandexImages","YandexMetrika","YandexVideo","YandexMedia","AbachoBOT","accoona","AcioRobot","ASPSeek","CocoCrawler","Dumbot","FAST-WebCrawler","GeonaBot","Gigabot","Lycos","MSRBOT","Scooter","AltaVista","IDBot","eStyle","Scrubby","MJ12bot","AhrefsBot");
    foreach($crawlers as $ckey => $cisim){
        if(preg_match("/$cisim/i", $userAgent, $matches) > 0){
    	$botsonuc=$cisim;
    	}
    }
        return $botsonuc;
    }
    
    echo botbul($_SERVER['HTTP_USER_AGENT']);
  • 16-08-2012, 11:57:59
    #3
    Üyeliği durduruldu
    nasıl kullanıcaz bunu?
  • 16-08-2012, 12:08:57
    #4
    benim sitemde online ziyaretçi kısmı var orda her ziyaretçi bir oturum id si ile sitede dolaşıyor, farklı ip lerden gelen herkes sistemde haliyle farklı bir kişi olarak algılanıyor.
    en son burayı kurcaladığımda ip bazlı banlama ekleyeyim dedim haliyle arama motorlarını banlanacak ip lerden ayırmam lazım bu yüzden onları ayırmam gerekti.
    bu fonksiyonu ben bu iş için kullandım.

    ek olarak şu an botlar farklı ip lerden de gelseler sitede tek oturum açılıyor, önceden aynı anda 10-15 oturum birden açılıyordu. aynı anda google,msn,yandex botları gelirse ziyaretçi sayısı bir anda 30-40 kişi artıyordu şu an yine botlar geliyor ama ben bu 30-40 bot bağlantısını 3 ziyaretçi olarak görüyorum ve yanlışlıkla botları da banlamıyorum
  • 16-08-2012, 12:12:55
    #5
    Üyeliği durduruldu
    bu kodlar nasıl kullanılıyor?????