- Home
- Categorie
- Coding e Sistemistica
- PHP
- Codice per scrivere il passaggio dello spider
-
Codice per scrivere il passaggio dello spider
Ho una funzione sche scrive su file quando passano i vari bot:
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Googlebot';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners')){$bot='Adsense';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'ichiro')){$bot='ichiro';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$str_bot='Msn';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'bingBot')){$str_bot='Bing';}Il guaio è che funziona a dovere von googlebot o ichiro, ma fallisce se invece il bon è bingbot o msnbot.
A cosa può essere dovuto questo strano comportamento?
Grazie
-
Prova a usare stristr() .
-
@supercapocc said:
Prova a usare stristr() .
Grazie gia fatto, e trovato pure l'errore: usavo 2 nomi diversi come variabile di destinazione
greg
-
@netgreg said:
Ho una funzione sche scrive su file quando passano i vari bot:
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Googlebot';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners')){$bot='Adsense';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'ichiro')){$bot='ichiro';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$str_bot='Msn';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'bingBot')){$str_bot='Bing';}Il guaio è che funziona a dovere von googlebot o ichiro, ma fallisce se invece il bon è bingbot o msnbot.
A cosa può essere dovuto questo strano comportamento?
GrazieCon gli spider sono più diretto di te
[php]
<Location />
SetEnvIf User-Agent "msnbot" BlockUA
SetEnvIf User-Agent "bingbot" BlockUA
SetEnvIf User-Agent "Googlebot" BlockUA
SetEnvIf User-Agent "Mediapartners" BlockUA
SetEnvIf User-Agent "Slurp" BlockUA
SetEnvIf User-Agent "Ikiro" BlockUA
Order allow,deny
Allow from all
Deny from env=BlockUA
</Location>
[/php]Li chiudo fuori della porta a ciao ciao. Grazie a dio esiste Apache
-
Grazie Aragonese,
avevo provato un codice simile a qualo consigliato da te, ma non sono riuscito a farlo funzionare. Era diverso, non a veva il tag location.
Ma spiegami meglio: va messo in htaccess, vero?
-
@netgreg said:
Grazie Aragonese,
avevo provato un codice simile a qualo consigliato da te, ma non sono riuscito a farlo funzionare. Era diverso, non a veva il tag location.
Ma spiegami meglio: va messo in htaccess, vero?apache.conf
-
Ho gia risposto ma non vedo nulla, riscrivo.
Non credo che il mio hoster mi faccia toccare quel file, penso che oltre htaccess non mi lasci andare.
Ad oggi ho provato vari per rendere il sito invisibile a vari bot, ma son riuscito sono con Deny Num_ip. Se il bot cambia ip... non funziona piu.
Inoltre il server ho notato che risponde in modo strano: prima 301 e subito dopo 401.
Senza contare che una volta in mezzo a due 401 ha risposto con un 200!Se non posso rendere il sito invisibile almeno redirigere le richieste ad un sito inesistente, come il codice sotto, che non va:
#sbarazziamoci dei bot
RewriteCond %{HTTP_USER_AGENT} ^BadBot
RewriteCond %{HTTP_USER_AGENT} ^scoutjet
RewriteCond %{HTTP_USER_AGENT} ^woopingbot
RewriteRule ^(.)$ http: //go.away/
#RewriteRule ^.$ http: //127.0.0.1 [R,L]
-
@netgreg said:
Ho gia risposto ma non vedo nulla, riscrivo.
Non credo che il mio hoster mi faccia toccare quel file, penso che oltre htaccess non mi lasci andare.
Ad oggi ho provato vari per rendere il sito invisibile a vari bot, ma son riuscito sono con Deny Num_ip. Se il bot cambia ip... non funziona piu.
Inoltre il server ho notato che risponde in modo strano: prima 301 e subito dopo 401.
Senza contare che una volta in mezzo a due 401 ha risposto con un 200!Se non posso rendere il sito invisibile almeno redirigere le richieste ad un sito inesistente, come il codice sotto, che non va:
#sbarazziamoci dei bot
RewriteCond %{HTTP_USER_AGENT} ^BadBot
RewriteCond %{HTTP_USER_AGENT} ^scoutjet
RewriteCond %{HTTP_USER_AGENT} ^woopingbot
RewriteRule ^(.)$ http: //go.away/
#RewriteRule ^.$ http: //127.0.0.1 [R,L]Ti manca il mod_rewrite
-
@Aragonesse said:
Ti manca il mod_rewrite
Sembra che il modulo sia presente, perchè queste due righe di codice, molto simili, funzionano bene:
la prox riga redirect da senza www a con www
RewriteCond %{HTTP_HOST} ^xprenotare.it
RewriteRule ^(.*)$ www xprenotare.it/$1 [R=301,L]
-
@netgreg said:
Sembra che il modulo sia presente, perchè queste due righe di codice, molto simili, funzionano bene:
la prox riga redirect da senza www a con www
RewriteCond %{HTTP_HOST} ^xprenotare.it
RewriteRule ^(.*)$ www xprenotare.it/$1 [R=301,L]RewriteEngine On RewriteBase / RewriteCond %{HTTP_USER_AGENT} ^BlackWidow RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:[email protected] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw RewriteCond %{HTTP_USER_AGENT} ^DISCo RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon RewriteCond %{HTTP_USER_AGENT} ^eCatch RewriteCond %{HTTP_USER_AGENT} ^EirGrabber RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE RewriteCond %{HTTP_USER_AGENT} ^FlashGet RewriteCond %{HTTP_USER_AGENT} ^GetRight RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It RewriteCond %{HTTP_USER_AGENT} ^GrabNet RewriteCond %{HTTP_USER_AGENT} ^Grafula RewriteCond %{HTTP_USER_AGENT} ^HMView RewriteCond %{HTTP_USER_AGENT} ^HTTrack RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker RewriteCond %{HTTP_USER_AGENT} ^InterGET RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja RewriteCond %{HTTP_USER_AGENT} ^JetCar RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider RewriteCond %{HTTP_USER_AGENT} ^larbin RewriteCond %{HTTP_USER_AGENT} ^LeechFTP RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX RewriteCond %{HTTP_USER_AGENT} ^Navroad RewriteCond %{HTTP_USER_AGENT} ^NearSite RewriteCond %{HTTP_USER_AGENT} ^NetAnts RewriteCond %{HTTP_USER_AGENT} ^NetSpider RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire RewriteCond %{HTTP_USER_AGENT} ^NetZIP RewriteCond %{HTTP_USER_AGENT} ^Octopus RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator RewriteCond %{HTTP_USER_AGENT} ^PageGrabber RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto RewriteCond %{HTTP_USER_AGENT} ^pcBrowser RewriteCond %{HTTP_USER_AGENT} ^RealDownload RewriteCond %{HTTP_USER_AGENT} ^ReGet RewriteCond %{HTTP_USER_AGENT} ^Siphon RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger RewriteCond %{HTTP_USER_AGENT} ^SmartDownload RewriteCond %{HTTP_USER_AGENT} ^SuperBot RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP RewriteCond %{HTTP_USER_AGENT} ^Surfbot RewriteCond %{HTTP_USER_AGENT} ^tAkeOut RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro RewriteCond %{HTTP_USER_AGENT} ^VoidEYE RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker RewriteCond %{HTTP_USER_AGENT} ^WebAuto RewriteCond %{HTTP_USER_AGENT} ^WebCopier RewriteCond %{HTTP_USER_AGENT} ^WebFetch RewriteCond %{HTTP_USER_AGENT} ^WebReaper RewriteCond %{HTTP_USER_AGENT} ^WebSauger RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor RewriteCond %{HTTP_USER_AGENT} ^WebStripper RewriteCond %{HTTP_USER_AGENT} ^WebWhacker RewriteCond %{HTTP_USER_AGENT} ^WebZIP RewriteCond %{HTTP_USER_AGENT} ^Wget RewriteCond %{HTTP_USER_AGENT} ^Widow RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.*$ **METTI QUA QUELLO CHE VUOI **[L,R]
Prova questo