[PHP] 접속한 UuserAgent 가 로봇인지 체크하는 함수 - checkRobot
[PHP] 접속한 UuserAgent 가 로봇인지 체크하는 함수 - checkRobot
REDINFO
약 2년전 2021-11-07 18:30:32

블로그 사이트를 새로 개발하고 오픈한뒤로 꾸준히 봇들의 접속 로그가 확인이 되고 있다. 

 

다만 로그상 보면 잡히지 않는 봇들이 너무 많은것같아 기존 함수를 좀더 보완해서 

ua 에 bot 을 포함하여  전부 차단해 버렸다. 

 

뭐 정상적인 봇이라고 하지만 Yeti 나 bingbot 같은경우 디도스 공격처럼 접속하기때문에

반드시 트래픽을 잘 확인해 봐야한다. 

 

접속한 UuserAgent 가 로봇인지 체크하는 함수 예제

function checkRobot($ua){
   if(empty($ua)){ $ua = $_SERVER['HTTP_USER_AGENT'];   }
   $list = array(
      "Yeti",
      "YandexBot",
      "Googlebot",
      "Cowbot",
      "NaverBot",
      "Daum",
      "Daumoa",
      "TechnoratiSnoop",
      "Allblog\.net",
      "CazoodleBot",
      "nhn\/1noon",
      "Feedfetcher\-Google",
      "Yahoo\! Slurp",
      "msnbot",
      "bingbot",
      "MSNBot",
      "Technoratibot",
      "sproose",
      "CazoodleBot",
      "ONNET\-OPENAPI",
      "UCLA CS Dept",
      "Snapbot",
      "DAUM RSS Robot",
      "RMOM",
      "S20 Wing",
      "FeedBurner",
      "xMind",
      "openmaru feed aggregator",
      "ColFeed",
      "MJ12bot",
      "Twiceler",
      "ia_archiver",
      "BingPreview", // 2022-02-06 추가 
      "NetcraftSurveyAgent", // 2022-02-06 추가 
      "Bot", // 2022-03-28 추가 
      "bot", // 2022-03-28 추가 
   );

   $check = "/(".implode("|",$list).")/";
   if(preg_match($check, $_SERVER['HTTP_USER_AGENT'])){
      return true;;
   }else{
      return false;
   }

}

$botchk = checkRobot(); // true or false
이 포스트글이 도움이 되었나요?
3
카테고리 연관글

Comment

댓글작성

0(500) | 1(30)