Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak odfiltrować wszystkie boty,pająki, które wchodzą na stronę ?
Forum PHP.pl > Forum > Przedszkole
Greg23
Zliczam sobie ilość odwiedzin danej podstrony i 90% tych odwiedzin generują mi różne roboty.
Samych googlowych są dziesiątki (ip) nie licząc setek innych.
Istnieje jakaś prosta metoda, pomijając rel=nofollow, która pozwoli mi odsiać wszystkie roboty ?
W tym momencie próbowałem robić to tak:

  1. if ($user_ip != '66.249.71.25' && $user_ip != '207.46.13.98' && $user_ip != '65.52.109.200') { instrukcje }


ale tych robotów jest bardzo dużo i lepiej to chyba odsiewać po user agent, gdzieś kiedyś widziałem taką listę, ale
teraz widzę tylko jakieś niekompletne.

Może ktoś zna na to jakiś prosty sposób ?
cv65
Sprawdzaj useragent np za pomocą tej funkcji:
  1. function is_bot($user_agent)
  2. {
  3. if( $user_agent == '' ) return false;
  4.  
  5. $bot_strings = Array(
  6. 'google', 'bot',
  7. 'yahoo', 'spider',
  8. 'archiver', 'curl',
  9. 'twitt', 'perl',
  10. 'java', 'wordpress',
  11. 'crawl', 'facebookexternal'
  12. );
  13. foreach( $bot_strings as $bot )
  14. {
  15. if( strpos($user_agent, $bot) !== false )
  16. {
  17. return $bot;
  18. }
  19. }
  20. return false;
  21. }

i jeżeli wynik nie będzie równy false nie updatuj listy odwiedzin
ze4lot
Wydaje mi się, że wyrażenie regularne będzie bardziej optymalne od pętli
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.