Gibt es einen Index der IP-Adressen, die von der Indizierung von Bots verwendet werden?

7

Ich habe eine Seite mit minimalem Datenverkehr, aber ich habe statische Benachrichtigungen eingerichtet, wenn sie getroffen wird. Jetzt möchte ich, dass Bots ignoriert werden. Jetzt füge ich Bots, die ich sehe, zu einer Liste ohne Benachrichtigung hinzu.

Gibt es eine Referenzliste der IP-Adressen, die von Indizierungsrobotern verwendet werden?

zB eine Liste wie:

$no_mail = array(
    '67.195.115.105', // yahoo bot
    '207.46.199.50', // msn bot
    '61.135.249.246', //youdao bot
    '207.46.199.32', // msn bot
);
artlung
quelle
Ich sehe kein Problem beim Herausfiltern der Bots (wenn es nichts ändert, was sie sehen), aber warum sollten Sie sich selbst eine E-Mail senden, anstatt nur die vorhandenen Webserver-Protokolle zu überprüfen, Ihre eigene Protokolldatei zu erstellen oder Datensätze hinzuzufügen zu einem DB-Tisch? Meiner Meinung nach wäre es eine Menge Ärger, wenn Sie von etwas getroffen werden ... Ihr Mailserver wird von der Last nicht zerstört. Dies würde auch viel Zeit beim Laden von Seiten sparen, da die E-Mail-Generierung sehr zeitaufwändig ist.
Darryl Hein
Ich würde mir eine E-Mail senden, da dies der Mechanismus ist, mit dem ich benachrichtigt werden möchte. Ich könnte dies tun, indem ich taildie vorhandenen Protokolle verwende, aber dann wäre es nicht sofort und ich habe keinen Zugriff auf "Live" -Protokolle mit meinem freigegebenen Host. Und es ist kein Ärger, und dies ist nicht für eine Seite mit sehr viel Verkehr. Ich führe dieses Skript auch nach dem Laden der Seite aus, damit der Benutzer keine Auswirkungen auf die Ladezeit hat. Wenn es zu einem Ressourcenproblem kommen würde, wäre dies ein anderes Problem.
Artlung

Antworten:

5

http://www.user-agents.org/ könnte das sein, wonach Sie suchen.

Frank Robert Anderson
quelle
Gute Ressource, obwohl die in ihren Daten enthaltenen IP-Adressen unvollständig sind. Trotzdem denke ich, dass das Hinzufügen der UA-Zeichenfolgen als etwas, das ich überprüfe, ein Gewinn ist. Also werde ich nach Bedarf nach Bots und IP-Adressen suchen. Vielen Dank!
Artlung
2

Alle Suchmaschinen verwenden eine große Anzahl von IP-Adressen. Sie sollten sich stattdessen die Zeichenfolge des Benutzeragenten ansehen. Auf dieser Seite finden Sie eine gute Liste aller Crawler.

In PHP würde so etwas funktionieren:

$bots = array( 'googlebot', 'msnbot', 'slurp', 'mediapartners-google' );
$isRobot = false;
$ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );

foreach ( $bots as $bot ) {
  if ( strpos( $ua, $bot ) !== false )
    $isRobot = true;
}

if ( !$isRobot ) {
  // do your thing
}
DisgruntledGoat
quelle
Scraper und einige andere Crawler maskieren die Zeichenfolge des Benutzeragenten und geben vor, ein echter Browser zu sein. Nur etwas, auf das man achten muss.
Nathan Ridley
Guter Punkt. Ich werde einen hybriden Ansatz wählen, indem ich die UA-Zeichenfolge verwende und nach Bedarf IP-Adressen hinzufüge.
Artlung
1

Warum fügst du das nicht einfach in deine robots.txt-Datei ein?

User-agent: *
Disallow: /path/page-you-dont-want-crawled.html

Auf diese Weise müssen Sie nicht weiter nach Bots suchen. Ich würde alles wetten, dass Google, Yahoo und MSN Hunderte von Bots haben und wahrscheinlich unterschiedliche IP-Adressen haben und ständig neue erstellt werden. Das Hinzufügen der oben genannten Informationen sollte für Ihre Dateiseite ohne großen Aufwand dasselbe tun.

Ben Hoffman
quelle
Vermutlich möchte er immer noch, dass die Seite durchsuchbar ist, nur ohne dass die E-Mail gesendet wird, es sei denn, der Benutzer ist eine echte Person.
Cebjyre
1
Nur eine Anmerkung: Es gibt viele Bots, die die robots.txt-Datei nicht respektieren. Es wäre jedoch ein Anfang, um legitime Bots herauszufiltern.
Virtuosi Media
Dies ist wahrscheinlich der beste Weg, dies zu tun. Ich verwende dieselbe Technik, um Listen von Bots zu ernten, die robots.txt nicht respektieren. @Cebjyre - Die Seite, die @RandomBen beschreibt, hat keinerlei Inhalt. Sie sendet nur E-Mails, wenn ein Schurkenbot robots.txt ignoriert. Benutzer würden sie nicht einmal sehen.
Tim Post
Richtig, keine nützliche Lösung. Es macht mir nichts aus, Bots zu besuchen, ich möchte mich in diesem Moment
Artlung
@artlung - Jetzt verstehe ich was du versuchst zu tun. Es ist nicht so, dass Sie nicht möchten, dass Bots es crawlen. Sie möchten einfach nicht benachrichtigt werden, wenn dies der Fall ist.
Ben Hoffman
1

Unter http://ekstreme.com/phplabs/search-engine-authentication (sowie im Google Help Center-Artikel unter http://www.google.com/support/webmasters/bin/answer) finden Sie Code zum Erkennen von Bots . py? answer = 80553 bei der Überprüfung von Googlebot). Unter http://ekstreme.com/phplabs/crawlercontroller.php gibt es auch Code , mit dem Crawler erkannt werden können. Sie können ihn problemlos erweitern, um sowohl "gute" als auch die jetzt erkannten Spam-Crawler zu erkennen.

Im Allgemeinen ist es wichtig, sich nicht nur auf den Namen des Benutzeragenten oder die IP-Adresse allein zu verlassen, da einige Benutzeragenten möglicherweise von normalen Benutzern verwendet werden und einige IP-Adressen möglicherweise gemeinsam genutzt werden.

Das heißt, wenn Sie dies nur für E-Mail-Benachrichtigungen verwenden, würde ich wahrscheinlich einfach bekannte Muster im Benutzeragenten ignorieren und mit den falsch positiven und falsch negativen Ergebnissen leben. Überprüfen Sie Ihre Protokolldateien auf die häufigsten Crawler, die auf Ihrer Site aktiv sind, und suchen Sie nach einem eindeutigen Teil des Namens des Benutzeragenten (möglicherweise reicht es aus, nur "googlebot | slurp | msnbot | bingbot" zu verwenden).

John Mueller
quelle
1

Auf die eine oder andere Weise müssen Sie auch eine lokale Liste implementieren, wenn Sie es ernst meinen, Bots herauszufiltern. Manchmal sind zufällig erscheinende IPs von einer Website besessen, die ich verwalte. Universitätsprojekte, schlecht implementierte Bots, die experimentell erscheinen, aber nicht allgemein anerkannt sind, solche Dinge.

Auch: Der Cuil Bot (Twiceler) ist der Teufel.

Thomas
quelle
0

Können Sie auf den Useragent zugreifen? Das scheint mir eine bessere Möglichkeit zu sein, herauszufinden, wer ein echter Benutzer ist und was ein Bot ist - es ist widerstandsfähiger gegenüber legitimen Crawlern, die Adressen ändern, und wenn sich etwas als Bot tarnt, möchten Sie die E-Mail wahrscheinlich nicht erhalten wie auch immer.

Cebjyre
quelle
0

Versuche dies...

$UI_Agent = $_SERVER['HTTP_USER_AGENT'];

if(eregi("bot", $UI_Agent)) {
    // do your bot stuff here
}

HTH, Bud


quelle
1
Meh. Soviel zu meinem neuen Webbrowser : bottoms-up.
Tim Post