Frage

ich Statistiken für meine Nutzer bin Gebäude und dont die Besuche von Bots wollen gezählt werden.

Jetzt habe ich eine grundlegende PHP mit MySQL zu erhöhen 1 jedes Mal, wenn die Seite aufgerufen wird.

Aber Bots werden auch Zähler hinzugefügt.

Was kann jemand denken Sie an einen Weg?

Vor allem sind nur die wichtigsten diejenigen, die durcheinander zu bringen. Google, Yahoo, Msn, etc.

War es hilfreich?

Lösung

Sie von User-Agent-Strings filtern soll. Sie können eine Liste von etwa 300 gemeinsamen User-Agents von Bots hier gegeben finden: http: //www.robotstxt. org / db.html dieser Liste laufen durch und ignorieren bot-User-Agents, bevor Sie Ihre SQL-Anweisung ausführen Ihr Problem für alle praktischen Zwecke lösen sollte.

Wenn Sie nicht über die Suchmaschinen auch die Seite erreichen wollen, verwenden Sie eine grundlegende robots.txt Datei um sie zu blockieren.

Andere Tipps

Sie können prüfen, die User-Agent-String, leere Strings oder Strings 'Roboter' enthält, 'Spinne', 'Crawler', 'kräuseln' sind wahrscheinlich Roboter sein.

  

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

Wir haben einen ähnlichen Anwendungsfall zu sich selbst, und eine Option haben wir kürzlich festgestellt, sehr hilfreich ist die UASParser Klasse von user-agent-string.info .

Es ist eine PHP-Klasse, die den neuesten Satz von User-Agent-String Definitionen und speichert sie lokal zieht. Die Klasse kann so konfiguriert werden, um die Definitionen, wie oft zu ziehen oder so selten wie Sie es für richtig halten. Holt sie automatisch wie dies bedeutet, dass Sie an der Spitze halten müssen kommende Benutzeragenten nicht der verschiedenen Änderungen Bieten oder neue auf dem Markt, obwohl Sie auf UAS.info setzen diese genau zu tun.

Wenn die Klasse aufgerufen wird, analysiert er den User-Agenten des aktuellen Besuchers und gibt ein assoziatives Array, das die Bestandteile Ausbrechen, z.

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
)

Das Feld typ wird auf browser wenn der UA als wahrscheinlich Zugehörigkeit zu einem menschlichen Besucher identifiziert wird, in dem Fall, dass Sie Ihre Statistiken aktualisieren.

Ein paar Einsprüche hier:

  • Sie sich auf UAS.info für die Saiten User-Agent zur Verfügung gestellt genaue und up-to-date sein
  • Bots wie Google und Yahoo erklären sich in ihren User-Agent-Strings, aber diese Methode wird noch Besuche von Bots zählen vorgeben menschliche Besucher zu sein (Spoofing UAs Senden)
  • Wie @amdfan oben erwähnt, blockiert Bots über robots.txt sollte die meisten von ihnen vom Erreichen Ihrer Seite stoppen. Wenn Sie den Inhalt indiziert werden müssen, aber nicht Statistiken erhöht, dann wird die robots.txt-Methode wird keine realistische Option sein

Überprüfen Sie die User-Agent bevor die Seitenansicht Anzahl erhöht wird, aber denken Sie daran, dass dies sein kann Spoofing. PHP setzt die User-Agenten in $_SERVER['HTTP_USER_AGENT'], unter der Annahme, dass der Webserver sich mit diesen Informationen zur Verfügung stellt. Weitere Informationen über $_SERVER können unter http: //www.php. net / manual / en / reserved.variables.server.php .

Sie können eine Liste von Benutzeragenten unter http://www.user-agents.org ; Googeln wird auch die Namen derjenigen zu den großen Anbietern gehören. Eine dritte mögliche Quelle Ihres Webservers Zugriffsprotokoll sein würde, wenn man sich aggregieren kann.

Haben Sie versucht, sie durch ihre User-Agent-Informationen zu identifizieren? Eine einfache Google-Suche sollten Sie die User-Agents geben, die von Google etc.

Dies ist natürlich nicht narrensicher, aber die meisten Crawler von großen Unternehmen liefern einen eindeutigen User-Agent.

EDIT: Angenommen, Sie wollen nicht den Bots Zugang zu beschränken, sondern nur nicht seinen Besuch in Ihrer statistc zählt

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top