Ophørt jernbane af Osaka Keramik

Jeg har en side, der får minimal trafik, men jeg opretter statiske meddelelser, når den bliver ramt. Nu vil jeg have, at bots bliver ignoreret, så hvad jeg laver nu er at tilføje bots, som jeg ser, til en "ingen underretning" -liste.

Er der en referenceoversigt over de IP-adresser, der bruges af indekseringsrobotter?

f.eks. en liste som:

$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 ); 

  • Jeg kan ikke se et problem med at filtrere bots ud (hvis det ikke ændrer noget de ser), men hvorfor sender du dig selv en e-mail i stedet for bare at kontrollere de eksisterende webserverlogfiler, oprette din egen logfil eller tilføje poster til et db-bord? Min tanke er, at det ville være en masse besvær, når du bliver hamret af noget ... din mailserver bliver ikke knust af belastningen. Det ville også spare en masse sideindlæsningstid, da mailgenerering er ret tidskrævende.
  • Jeg ville sende mig en e-mail, fordi det er den mekanisme, jeg vil bruge til at blive underrettet. Jeg kunne gøre det ved tailde eksisterende logfiler, men så ville det ikke være øjeblikkeligt, og jeg har ikke adgang til "live" logfiler med min delte vært. Og det er ikke besværet, og det er ikke til en side med enorme mængder trafik. Jeg udfører også dette script efter siden er indlæst, så der ikke er nogen belastningstid på brugeren. Hvis det kom ind i et ressourceproblem, ville det være et andet problem.

http://www.user-agents.org/ kan være det, du leder efter.

  • God ressource, selvom de IP-adresser, der er inkluderet i deres data, er ufuldstændige. Alligevel tror jeg, at tilføje UA-strenge som noget, jeg tjekker, er en gevinst. Så jeg vil se efter bots og ip-adresser efter behov. Tak!

Alle søgemaskiner bruger et stort antal IP-adresser. Du vil i stedet se på brugeragentstrengen. Tjek denne side for en god liste over alle crawlere.

I PHP ville noget som dette fungere:

$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 } 
  • Skrabere og nogle andre crawlere maskerer brugeragentstrengen og foregiver at være en rigtig browser. Bare noget at passe på.
  • God pointe. Jeg går efter en hybrid tilgang ved hjælp af UA-strengen og tilføjer IP-adresser efter behov.

Hvorfor lægger du ikke bare dette i din robots.txt-fil?

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

På den måde behøver du ikke fortsætte med at jage efter bots. Jeg vil vædde på alt, hvad Google, Yahoo og MSN har hundreder af bots, og de har sandsynligvis forskellige IP-adresser og nye, der oprettes hele tiden. Tilføjelse af ovenstående skal gøre det samme for din filside uden alt besværet.

  • Formentlig vil han stadig have siden, der skal kunne søges, bare uden at e-mailen sendes, medmindre brugeren er en rigtig person.
  • 1 Bare en note: Der er masser af bots, der ikke respekterer robots.txt-filen. Det ville dog være en start for at filtrere legitime bots ud.
  • Dette er sandsynligvis den bedste måde at gøre det på. Jeg bruger den samme teknik til at høste lister over bots, der ikke respekterer robots.txt. @Cebjyre - siden @ RandomBen beskriver ville ikke have noget indhold overhovedet, det sender bare mail, når en slyngel-bot ignorerer robots.txt - brugerens ville ikke engang se det.
  • Ret, ikke en nyttig løsning. Jeg har ikke noget imod bots, der besøger, jeg vil bare ikke være ligeglad med dem på dette tidspunkt
  • @artlung - Nu forstår jeg, hvad du prøver at gøre. Det er ikke, at du ikke vil have bots til at gennemgå det. Du vil bare ikke have besked, når de gør det.

Der er nogle koder til at genkende bots på http://ekstreme.com/phplabs/search-engine-authentication (samt artiklen om Google Hjælp på http://www.google.com/support/webmasters/bin/answer. py? answer = 80553 om verificering af Googlebot). Der er også noget kode på http://ekstreme.com/phplabs/crawlercontroller.php, der kan bruges til at genkende crawlere, som du let kan udvide til at genkende "gode" crawlere såvel som de spammy, den genkender nu.

Generelt er det vigtigt ikke at stole på hverken brugeragentens navn eller IP-adresse alene, da nogle brugeragenter kan bruges af normale brugere, og nogle IP-adresser kan deles.

Når det er sagt, hvis du kun bruger dette til e-mail-underretninger, ville jeg sandsynligvis bare ignorere simple kendte mønstre i brugeragenten og leve med de falske positive og falske negativer. Tjek dine logfiler for de mest almindelige crawlere, der er aktive på dit websted, og kontroller bare for en unik del af brugeragentnavnet (det kan være nok at bare bruge "googlebot | slurp | msnbot | bingbot").

På den ene eller den anden måde, hvis du er seriøs med at filtrere bots ud, skal du også implementere en lokal liste. Nogle gange bliver tilfældige IP'er besat af et websted, jeg administrerer. Universitetsprojekter, dårligt implementerede bots, der virker eksperimentelle, men som ikke er almindeligt anerkendte, den slags ting.

Også: Cuil bot (Twiceler) er djævelen.

Kan du få adgang til brugeragenten? Det forekommer mig en bedre måde at finde ud af, hvem der er en reel bruger, og hvad der er en bot - det er mere modstandsdygtigt over for legitime crawlere, der skifter adresse, og hvis noget maskerer sig som en bot, vil du sandsynligvis ikke få e-mailen alligevel.

Prøv dette...

$UI_Agent = $_SERVER['HTTP_USER_AGENT']; if(eregi('bot', $UI_Agent)) { // do your bot stuff here } 

HTH, Bud

  • 1 Meh. Så meget for min nye webbrowser: bottoms-up.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger