IP range с php

petark

Registered
Правя си код за посещения в сайта, искам ipтата от ботовете да не ги записва...
Kак се взима range ip с php?
Примерно на google bota e с ИП от 64.233.160.0 до 64.233.191.255..
Как да направя пхп кода
If ...... { googlebot } else { не е бот }

Сматам да огранича ето тези IPта:
http://chceme.info/ips/
 
Може да пробваш нещо от рода на:
PHP:
if (ip2long($_SERVER['REMOTE_ADDR']) >= ip2long('64.233.160.0') && ip2long($_SERVER['REMOTE_ADDR']) <= ip2long('64.233.191.255')) {
	echo "bot";
} else {
	echo "ne e bot";
}
ползвам подобен код за да определя ИП-тата на вътрешната ни мрежа. примерно рейндж 10.10.10.0 ... 10.10.20.0 и работи успешно.
Поздрави.
 
Благодаря ще пробвам да вида дали засича ботовете :)\

A как да направя проверка с всичките IPта?
66.102.0.0 -> 66.102.15.255
66.249.64.0 -> 66.249.95.255
72.14.192.0 -> 72.14.255.255
74.125.0.0 -> 74.125.255.255
209.85.128.0 -> 209.85.255.255
216.239.32.0 -> 216.239.63.255
 
petark каза:
Правя си код за посещения в сайта, искам ipтата от ботовете да не ги записва...
Kак се взима range ip с php?
Примерно на google bota e с ИП от 64.233.160.0 до 64.233.191.255..
Как да направя пхп кода
If ...... { googlebot } else { не е бот }

Сматам да огранича ето тези IPта:
http://chceme.info/ips/
Не се мъчи с IP.
PHP:
?php
function crawlerDetect($USER_AGENT)
{
$crawlers = array(
'Google' => 'Google',
'MSN' => 'msnbot',
      'Rambler' => 'Rambler',
      'Yahoo' => 'Yahoo',
      'AbachoBOT' => 'AbachoBOT',
      'accoona' => 'Accoona',
      'AcoiRobot' => 'AcoiRobot',
      'ASPSeek' => 'ASPSeek',
      'CrocCrawler' => 'CrocCrawler',
      'Dumbot' => 'Dumbot',
      'FAST-WebCrawler' => 'FAST-WebCrawler',
      'GeonaBot' => 'GeonaBot',
      'Gigabot' => 'Gigabot',
      'Lycos spider' => 'Lycos',
      'MSRBOT' => 'MSRBOT',
      'Altavista robot' => 'Scooter',
      'AltaVista robot' => 'Altavista',
      'ID-Search Bot' => 'IDBot',
      'eStyle Bot' => 'eStyle',
      'Scrubby robot' => 'Scrubby',
      'Facebook' => 'facebookexternalhit',
  );
  // to get crawlers string used in function uncomment it
  // it is better to save it in string than use implode every time
  // global $crawlers
   $crawlers_agents = implode('|',$crawlers);
  if (strpos($crawlers_agents, $USER_AGENT) === false)
      return false;
    else {
    return TRUE;
    }
}
$USER_AGENT = $_SERVER['HTTP_USER_AGENT']
if(crawlerDetect($USER_AGENT)) return "no need to lang redirection";
?>
Взех я от тук и е на принципа $USER_AGENT = $_SERVER['HTTP_USER_AGENT']
http://stackoverflow.com/questions/677419/how-to-detect-search-engine-bots-with-php
 
Това го пробвах с user agenta но мисля че не всеки път засича правилно... тествал ли си го?
 

Back
Горе