Code php phát hiện các công cụ tìm kiếm đang crawler duyệt web hay người dùng đang duyệt web. Code giúp bạn tránh chặn các công cụ này khi sử dụng các tường lửa code trong web để chống ddos và flood web bạn. Khi bạn xây dựng 1 tường lửa cho web bạn rất lo sợ chặn nhầm các ip của google và các công cụ bot spider bing, yahoo và nhiều công cụ khác. Nay ITSEOVN sẽ hướng dẫn code các bạn nếu làm tường lửa thì tránh đừng chặn các ip và spider bot của các công cụ tìm kiếm này. CODE như sau : PHP: function crawlerDetectWeb($USER_AGENT){ $crawlers = array( array('Google', 'Google'), array('msnbot', 'MSN'), array('Rambler', 'Rambler'), array('Yahoo', 'Yahoo'), array('AbachoBOT', 'AbachoBOT'), array('accoona', 'Accoona'), array('AcoiRobot', 'AcoiRobot'), array('ASPSeek', 'ASPSeek'), array('CrocCrawler', 'CrocCrawler'), array('Dumbot', 'Dumbot'), array('FAST-WebCrawler', 'FAST-WebCrawler'), array('GeonaBot', 'GeonaBot'), array('Gigabot', 'Gigabot'), array('Lycos', 'Lycos spider'), array('MSRBOT', 'MSRBOT'), array('Scooter', 'Altavista robot'), array('AltaVista', 'Altavista robot'), array('IDBot', 'ID-Search Bot'), array('eStyle', 'eStyle Bot'), array('Scrubby', 'Scrubby robot') ); foreach ($crawlers as $c) { if (stristr($USER_AGENT, $c[0])) { return($c[1]); } } return false;}$crawlerweb = crawlerDetectWeb($_SERVER['HTTP_USER_AGENT']);if($crawlerweb ==false){ //nếu không phải là các công cụ tìm kiếm thì chặn hoặc làm gì đó.} Chúc các bạn thành công.
Hoặc nhều khi, google bot đọc mảng rất kém, khiến việc kiểm tra nhiều khi bị sai thì bạn dùng lênh if như sau PHP: function crawlerDetect($USER_AGENT){ if(stristr($USER_AGENT, 'Google') != false) { return 'Google'; } elseif(stristr($USER_AGENT, 'msnbot') != false) { return 'msnbot'; } elseif(stristr($USER_AGENT, 'bingbot') != false) { return 'bingbot'; } elseif(stristr($USER_AGENT, 'facebook') != false) { return 'facebook'; } elseif(stristr($USER_AGENT, 'Rambler') != false) { return 'Rambler'; } elseif(stristr($USER_AGENT, 'Yahoo') != false) { return 'Yahoo'; } elseif(stristr($USER_AGENT, 'AbachoBOT') != false) { return 'AbachoBOT'; } elseif(stristr($USER_AGENT, 'accoona') != false) { return 'accoona'; } elseif(stristr($USER_AGENT, 'AcoiRobot') != false) { return 'AcoiRobot'; } elseif(stristr($USER_AGENT, 'ASPSeek') != false) { return 'ASPSeek'; } elseif(stristr($USER_AGENT, 'CrocCrawler') != false) { return 'CrocCrawler'; } elseif(stristr($USER_AGENT, 'Dumbot') != false) { return 'Dumbot'; } elseif(stristr($USER_AGENT, 'FAST-WebCrawler') != false) { return 'FAST-WebCrawler'; } elseif(stristr($USER_AGENT, 'GeonaBot') != false) { return 'GeonaBot'; } elseif(stristr($USER_AGENT, 'Gigabot') != false) { return 'Gigabot'; } elseif(stristr($USER_AGENT, 'Lycos') != false) { return 'Lycos'; } elseif(stristr($USER_AGENT, 'MSRBOT') != false) { return 'MSRBOT'; } elseif(stristr($USER_AGENT, 'Scooter') != false) { return 'Scooter'; } elseif(stristr($USER_AGENT, 'AltaVista') != false) { return 'AltaVista'; } elseif(stristr($USER_AGENT, 'IDBot') != false) { return 'IDBot'; } elseif(stristr($USER_AGENT, 'eStyle') != false) { return 'eStyle'; } elseif(stristr($USER_AGENT, 'Scrubby') != false) { return 'Scrubby'; } return false;}// search bot id$crawler = crawlerDetect($_SERVER['HTTP_USER_AGENT']);if($crawler==false){ /neu không phải bot thì làm gì đó.}else{ // nếu là bot thì làm gì đó.}
Theo mình, thì các bạn nên sử dụng cách 2 đó là kiểm tra bằng lệnh if việc kiểm tra sẽ hoàn hảo 100% hơn là sử dụng vòng for như cách 1 ở trên
chuyengia(dot)info chúc bạn một ngày tốt lành Yêu xa xôi nhớ nhung là vậy Chẳng được gần mong hãy hiểu nhau Đừng hờn ghen để nước mắt trào Không bên cạnh thõa bao nhung nhớ