При Клоакинге нужен комплексный подход — по рефереру, юзерагенту, IP подсетей поисковых ботов.
Можно просто ставить редиректы, но как правило такие доры долго не живут.
Используя клоакинг мои доры доживали до 2-х месяцев, что очень хорошо
Готовим список список юзерагентов к фильтрации.
PHP:
$user_agent_to_filter = array( ‘#Ask\s*Jeeves#i’, ‘#HP\s*Web\s*PrintSmart#i’, ‘#HTTrack#i’, ‘#IDBot#i’, ‘#Indy\s*Library#’,
‘#ListChecker#i’, ‘#MSIECrawler#i’, ‘#NetCache#i’, ‘#Nutch#i’, ‘#RPT-HTTPClient#i’,
‘#rulinki\.ru#i’, ‘#Twiceler#i’, ‘#WebAlta#i’, ‘#Webster\s*Pro#i’,’#www\.cys\.ru#i’,
‘#Wysigot#i’, ‘#Yahoo!\s*Slurp#i’, ‘#Yeti#i’, ‘#Accoona#i’, ‘#CazoodleBot#i’,
‘#CFNetwork#i’, ‘#ConveraCrawler#i’,’#DISCo#i’, ‘#Download\s*Master#i’, ‘#FAST\s*MetaWeb\s*Crawler#i’,
‘#Flexum\s*spider#i’, ‘#Gigabot#i’, ‘#HTMLParser#i’, ‘#ia_archiver#i’, ‘#ichiro#i’,
‘#IRLbot#i’, ‘#Java#i’, ‘#km\.ru\s*bot#i’, ‘#kmSearchBot#i’, ‘#libwww-perl#i’,
‘#Lupa\.ru#i’, ‘#LWP::Simple#i’, ‘#lwp-trivial#i’, ‘#Missigua#i’, ‘#MJ12bot#i’,
‘#Mozilla\/5\.0#i’, ‘#msnbot#i’, ‘#msnbot-media#i’, ‘#Offline\s*Explorer#i’, ‘#OmniExplorer_Bot#i’,
‘#PEAR#i’, ‘#psbot#i’, ‘#Python#i’, ‘#rulinki\.ru#i’, ‘#SMILE#i’,
‘#Speedy#i’, ‘#Teleport\s*Pro#i’, ‘#TurtleScanner#i’, ‘#User-Agent#i’, ‘#voyager#i’,
‘#Webalta#i’, ‘#WebCopier#i’, ‘#WebData#i’, ‘#WebZIP#i’, ‘#Wget#i’,
‘#Yandex#i’, ‘#Yanga#i’, ‘#Yeti#i’,’#msnbot#i’,
‘#spider#i’, ‘#yahoo#i’, ‘#jeeves#i’ ,’#google#i’ ,’#altavista#i’,
‘#scooter#i’ ,’#av\s*fetch#i’ ,’#asterias#i’ ,’#spiderthread revision#i’ ,’#sqworm#i’,
‘#ask#i’ ,’#lycos.spider#i’ ,’#infoseek sidewinder#i’ ,’#ultraseek#i’ ,’#polybot#i’,
‘#webcrawler#i’, ‘#robozill#i’, ‘#gulliver#i’, ‘#architextspider#i’, ‘#yahoo!\s*slurp#i’,
‘#charlotte#i’, ‘#ngb#i’ ) ;
if ( !empty( $_SERVER[‘HTTP_USER_AGENT’] ) && ( FALSE !== strpos( preg_replace( $user_agent_to_filter, ‘-NO-WAY-‘, $_SERVER[‘HTTP_USER_AGENT’] ), ‘-NO-WAY-‘ ) ) )
echo ‘держи барашку :)’ ;
else
echo ‘redirect…’ ;
И диапозон поисковых ботов.
PHP:
$stop_ips_masks = array(
«66\.249\.[6-9][0-9]\.[0-9]+», // Google NetRange: 66.249.64.0 — 66.249.95.255
«74\.125\.[0-9]+\.[0-9]+», // Google NetRange: 74.125.0.0 — 74.125.255.255
«65\.5[2-5]\.[0-9]+\.[0-9]+», // MSN NetRange: 65.52.0.0 — 65.55.255.255,
«74\.6\.[0-9]+\.[0-9]+», // Yahoo NetRange: 74.6.0.0 — 74.6.255.255
«67\.195\.[0-9]+\.[0-9]+», // Yahoo#2 NetRange: 67.195.0.0 — 67.195.255.255
«72\.30\.[0-9]+\.[0-9]+», // Yahoo#3 NetRange: 72.30.0.0 — 72.30.255.255
«38\.[0-9]+\.[0-9]+\.[0-9]+», // Cuill: NetRange: 38.0.0.0 — 38.255.255.255
«93\.172\.94\.227», // MacFinder
«212\.100\.250\.218», // Wells Search II
«71\.165\.223\.134», // Indy Library
«70\.91\.180\.25»,
«65\.93\.62\.242»,
«74\.193\.246\.129»,
«213\.144\.15\.38»,
«195\.92\.229\.2»,
«70\.50\.189\.191»,
«218\.28\.88\.99»,
«165\.160\.2\.20»,
«89\.122\.224\.230»,
«66\.230\.175\.124»,
«218\.18\.174\.27»,
«65\.33\.87\.94»,
«67\.210\.111\.241»,
«81\.135\.175\.70»,
«64\.69\.34\.134»,
«89\.149\.253\.169»
);
foreach ( $stop_ips_masks as $k=>$v )
{
if ( preg_match( ‘#^’.$v.’$#’, $_SERVER[‘REMOTE_ADDR’])) {
echo ‘bot detected’ ;
}
}