如何防止已知和未知的机器人c#

时间:2016-01-11 09:44:47

标签: c# model-view-controller bots

我有一个简单的网络应用程序,托管,我已启用谷歌搜索,所以谷歌机器人抓取,我无法找到许多未知机器人爬行我的应用程序。我需要知道访问该网站的有效用户(机器人除外)。

我用过

httprequest.Browser.Crawler

但它无法正常运作。

任何人都可以帮我完全防止这种情况吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Request.UserAgent查看UserAgent og请求,然后将其与Crawler UserAgent strings

列表进行匹配

我会正确使用过滤器,然后将其应用于您的filterconfig

public class CrawlerFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        var userAgent = context.HttpContext.Request.UserAgent;
        //Do something with the userAgent and/or drop the request
    }
}

问题在于并非所有爬虫都遵守此规则,因此您无法真正“超级”确定。

修改

我刚刚得知Request.Browser.Crawler基本上就是我上面提到的,虽然列表(来自Browser.Crawler)似乎没有得到很好的维护。