Php ile botlara tanımak için?

5 Cevap php

Benim kullanıcılar için istatistikleri bina ve sayılacak botlara karşı ziyaretleri diliyorum Yüklü duyuyorum.

Şimdi mysql sayfa denir her zaman 1 artan temel bir php var.

Ancak, botlar da sayısı eklenir.

Herkes bir şekilde düşünebilirsiniz mu?

Temelde sadece önemli olanları o berbat şeyler kalmıştır. Vb Google, Yahoo, Msn,

5 Cevap

Sen user-agent dizeleri ile filtre edilmelidir. http://www.robotstxt.org/db.html bu liste üzerinden Koşu ve SQL deyimi çalıştırmadan önce bot user-agent görmezden bütün pratik amaçlar için sorunu çözmek gerekir: Burada botlar tarafından verilen yaklaşık 300 ortak kullanım maddelerin bir listesini bulabilirsiniz.

Eğer arama motorları bile, sayfaya ulaşmak, onları engellemek için bir temel robots.txt dosyası kullanmak istemiyorsanız.

Sen User Agent dize, boş dizeler, ya da 'robot', 'örümcek', 'tarayıcımızın' içeren dizeleri kontrol edebilir, robotlar olması muhtemeldir 'kıvırmak'.

preg_match('/robot|spider|crawler|curl|^$/i', $_SERVER['HTTP_USER_AGENT']));

Biz kendinize benzer bir kullanım durumunun ettik ve biz son zamanlarda oldukça yararlı bulduğum bir seçenek UASParser class user-agent-string.info değil.

Bu kullanıcı aracısı dizesi tanımları son set çeker ve bunları yerel olarak önbelleğe bir PHP sınıfı bulunuyor. Sınıf kadar sık ​​ya da nadiren size uygun gördükleri gibi tanımları çekmek için yapılandırılabilir. Otomatik olarak bu gibi onları getiriliyor Eğer doğru yapmak için UAS.info güvenmek rağmen, bot kullanıcı maddeleri veya piyasaya gelen yeni olanlar için çeşitli değişiklikler üstünde tutmak zorunda değilsiniz demektir.

Sınıf çağrıldığında, geçerli ziyaretçinin kullanıcı ajanı ayrıştırır ve kurucu parçaları söküyor bir ilişkisel dizi, örneğin döner

Array
(
    [typ] => browser
    [ua_family] => Firefox
    [ua_name] => Firefox 3.0.8
    [ua_url] => http://www.mozilla.org/products/firefox/
    [ua_company] => Mozilla Foundation
    ........
    [os_company] => Microsoft Corporation.
    [os_company_url] => http://www.microsoft.com/
    [os_icon] => windowsxp.png
)

Alan typ ayarlanır browser UA olasılıkla size istatistikleri güncelleme hangi durumda bir insan ziyaretçi, ait olduğu tespit edildiğinde.

Burada uyarılar çift:

  • Sen doğru ve güncel olması için sağlanan kullanıcı aracısı dizeleri için UAS.info dayanarak konum
  • Google ve yahoo gibi botlar kendi kullanıcı aracısı dizeleri kendilerini beyan, ancak bu yöntem yine de (sahte UAS gönderme) insan ziyaretçiler gibi davranarak botlara ziyaretlerini sayacaktır
  • @amdfan Yukarıda belirtildiği gibi, robots.txt yoluyla bot engelleme sayfanızı ulaşmasını çoğu durması gerekir. Eğer endeksli olması içerik gerek ama istatistikleri artırmak değil, o robots.txt yöntem gerçekçi bir seçenek olmayacak

Sayfa görünümü sayısını artırarak önce user agent edin, ama bu sahte olabilir unutmayın. PHP web sunucusu bu bilgileri ile sağladığını varsayarak, $_SERVER['HTTP_USER_AGENT'] kullanıcı ajanı ortaya koyar. Hakkında daha fazla bilgi $_SERVER http://www.php.net/manual/en/reserved.variables.server.php bulunabilir.

Sen http://www.user-agents.org de kullanıcı ajanların listesini bulabilirsiniz; Googling da büyük sağlayıcıları ait olanların isimlerini sağlayacaktır. Bunları toplamak eğer üçüncü bir olası kaynağı, web sunucusunun erişim günlükleri olacaktır.

Eğer kendi kullanıcı aracısı bilgilerle onları tanımlayan denediniz mi? Basit bir google arama, Google vb tarafından kullanılan user-agent vermelidir

Bu, elbette, kusursuz değil, ama büyük şirketler tarafından en tarayıcılarının ayrı bir user-agent kaynağı.

EDIT: botlar erişimi kısıtlamak istemiyorum varsayarsak, ama sadece statistc onun ziyareti saymaz.