php robot 감지 함수 모음 > 개발정보

본문 바로가기

검색취소

php robot 감지 함수 모음

검색 이전 다음 목록

본문

preg_match('/robot|spider|crawler|curl|^$/i', $_SERVER['HTTP_USER_AGENT']));

function _bot_detected() {

  if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
    return TRUE;
  }
  else {
    return FALSE;
  }

}

$interestingCrawlers = array( 'google', 'yahoo' );
$pattern = '/(' . implode('|', $interestingCrawlers) .')/';
$matches = array();
$numMatches = preg_match($pattern, strtolower($_SERVER['HTTP_USER_AGENT']), $matches, 'i');
if($numMatches > 0) // Found a match
{
  // $matches[1] contains an array of all text matches to either 'google' or 'yahoo'
}


<?php // IPCLOACK HOOK
if (CLOAKING_LEVEL != 4) {
    $lastupdated = date("Ymd", filemtime(FILE_BOTS));
    if ($lastupdated != date("Ymd")) {
    $lists = array(
    'http://labs.getyacg.com/spiders/google.txt',
    'http://labs.getyacg.com/spiders/inktomi.txt',
    'http://labs.getyacg.com/spiders/lycos.txt',
    'http://labs.getyacg.com/spiders/msn.txt',
    'http://labs.getyacg.com/spiders/altavista.txt',
    'http://labs.getyacg.com/spiders/askjeeves.txt',
    'http://labs.getyacg.com/spiders/wisenut.txt',
    );
    foreach($lists as $list) {
    $opt .= fetch($list);
    }
    $opt = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $opt);
    $fp =  fopen(FILE_BOTS,"w");
    fwrite($fp,$opt);
    fclose($fp);
    }
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
    $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
    $agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    $host = strtolower(gethostbyaddr($ip));
    $file = implode(" ", file(FILE_BOTS));
    $exp = explode(".", $ip);
    $class = $exp[0].'.'.$exp[1].'.'.$exp[2].'.';
    $threshold = CLOAKING_LEVEL;
    $cloak = 0;
    if (stristr($host, "googlebot") && stristr($host, "inktomi") && stristr($host, "msn")) {
    $cloak++;
    }
    if (stristr($file, $class)) {
    $cloak++;
    }
    if (stristr($file, $agent)) {
    $cloak++;
    }
    if (strlen($ref) > 0) {
    $cloak = 0;
    }

    if ($cloak >= $threshold) {
    $cloakdirective = 1;
    } else {
    $cloakdirective = 0;
    }
}
?>


<?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;
    }
}
?>

<?php $USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
  if(crawlerDetect($USER_AGENT)) return "no need to lang redirection";?>




function _bot_detected() {

  if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
    return TRUE;
  }
  else {
    return FALSE;
  }

}


interestingCrawlers = array( 'google', 'yahoo' );
$pattern = '/(' . implode('|', $interestingCrawlers) .')/';
$matches = array();
$numMatches = preg_match($pattern, strtolower($_SERVER['HTTP_USER_AGENT']), $matches, 'i');
if($numMatches > 0) // Found a match
{
  // $matches[1] contains an array of all text matches to either 'google' or 'yahoo'
}
추천 0

등록된 댓글이 없습니다.

검색취소

개발정보

검색
  • 생전 처음 해보는 iOS8 앱 24시간 안에 개발하기
  • 생전 처음 해보는 iOS8 앱 24시간 안에 개발하기

    2014년 11월 29일 토요일생전 처음 해보는 iOS8 앱 24시간 안에 개발하기 - 8시간이 포스트는 iOS의 어플리케이션 프레임워크와 랭기지를 전혀 모르는 상태에서 24시간안에 IoT앱을 만드는 과정 중 8시간…

  • no image
  • K-WAH 4.0

    다운로드 접속자가 폭주하여 다운로드가 중간에 끊길 수 있습니다.파일의 정상 용량은 60.2MB이며 정상적으로 다운되지 않았을 경우 다시 다운로드 하시기 바랍니다.K-WAH4.0을 설치하시기 전에 아래 기본요구사양의 …

  • 2014년 최고의 HTML5 애니메이션 제작 프로그램
  • 2014년 최고의 HTML5 애니메이션 제작 프로그램

    첨부파일

     2014년 최고의 HTML5 애니메이션 제작 프로그램   HTML5 등장 이전에는 웹에서 구현되는 애니메이션의 대부분은 플래시로 제작되었습니다. 플래시는 개발자가 아닌 디자이너도 애니메이션을 제작할수 있도록 강력하…

  • Ubuntu와 Mint  중에  데스크탑엔 Mint 추천
  • Ubuntu와 Mint 중에 데스크탑엔 Mint 추천

    첨부파일

    프로그래머는 아니지만,Linux를 사용해 보려고 노력하는 사람입니다. Linux 는 쓸수록 편리하면서,안정적이고,빠르네요 사양이 낮은 컴퓨터를 빠른 컴퓨터로 업그레이드 시켜주는 군요 올해 4월이니까.몇달 됬네요 처음…

  • 2013년 4월 리눅스 배포판 순위
  • 2013년 4월 리눅스 배포판 순위

    2013년 4월 리눅스 배포판 순위 리눅스 배포판의 실사용 순위는 아니지만 DistoWatch에서 제공하는 Page Hit Ranking입니다. Mint는 최근 12개월 동안뿐만 아니라 그 이전부터  1위를 고수하고…

  • no image
  • 블로그 소스 무엇이 좋을까?

    블로그 소스 무엇이 좋을까?   Tattertools을 쓰기전에 pMachine를 섰었다. 한 2달 정도. Tattertools도 많은 제약이 있지만.. 제일 문제가 되는건. 글쓸때 html을 그대로 보여주기 힘…

?>