Asp.net Request.Browser.Crawler - динамический список сканеров? - PullRequest
8 голосов
/ 11 января 2009

Я узнал, почему Request.Browser.Crawler всегда ложен в C # (http://www.digcode.com/default.aspx?page=ed51cde3-d979-4daf-afae-fa6192562ea9&article=bc3a7a4f-f53e-4f88-8e9c-c9337f6c05a0).

Кто-нибудь использует какой-либо метод для динамического обновления списка Crawler, поэтому Request.Browser.Crawler будет действительно полезен?

Ответы [ 2 ]

11 голосов
/ 11 января 2009

Я счастлив, что результаты Ocean's Browsercaps . Он поддерживает сканеры, которые файлы конфигурации Microsoft не удосужились обнаружить. Он даже определит, какая версия сканера есть на вашем сайте, но мне не нужен этот уровень детализации.

6 голосов
/ 11 января 2009

Вы можете проверить (регулярное выражение) против Request.UserAgent.

Питер Бромберг написал хорошую статью о написании ASP.NET Request Logger и Crawler Killer в ASP.NET.

Вот метод, который он использует в своем классе Logger:

public static bool IsCrawler(HttpRequest request)
{
   // set next line to "bool isCrawler = false; to use this to deny certain bots
   bool isCrawler = request.Browser.Crawler;
   // Microsoft doesn't properly detect several crawlers
   if (!isCrawler)
   {
       // put any additional known crawlers in the Regex below
       // you can also use this list to deny certain bots instead, if desired:
       // just set bool isCrawler = false; for first line in method 
       // and only have the ones you want to deny in the following Regex list
       Regex regEx = new Regex("Slurp|slurp|ask|Ask|Teoma|teoma");
       isCrawler = regEx.Match(request.UserAgent).Success;
   }
   return isCrawler;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...