2010-08-13 85 views
7

我有一个ASP.Net 4网站。我在后台统计访问者,但我的代码也计算搜索引擎的机器人。我如何理解我的客户是机器人还是人?我不想指望机器人。ASP.NET计数访客,不是漫游器

问候

+0

将一个链接粘贴在没有人正确想要访问的页面底部 - 除了机器人。 :) – 2010-08-13 20:48:05

+0

但是,如果您的网站是其中一个链接的开始? :-p – LesterDove 2010-08-13 20:58:14

回答

4

您可以使用Request.Browser的Crawler属性来过滤搜索引擎机器人。

+0

我得检查一下。 D'哦! – LesterDove 2010-08-13 20:53:00

+0

这只有在您记录请求时才会有帮助,而不是解析日志或事后进行检查。除此之外,好主意。 – cHao 2010-08-13 20:53:46

+0

嗨, 我试过这种方法,但它不适合我。你有另一个想法吗?我的代码是这样的。 if(!newSession) return; if(Request.Browser.Crawler) return; UpdateVisitorCounters(); – user348357 2010-08-28 11:39:24

0

您可以检查User Agent,然后查找类型R这是一个机器人或爬虫。

有关更多信息,请参阅http://www.user-agents.org

我确定有些情况下机器人不符合标准,您可能必须关闭这些标准。

0

您最好的选择可能是检查客户端的用户代理:

http://support.microsoft.com/kb/306576

甚至有可能出现一个快速的小图书馆了那里.NET有很多众所周知的用户代理或良好的正则表达式的使用。请注意,某些漫游器会发送伪造的用户代理,使其看起来像是人,某些人的浏览器可能会发送空的或未知的用户代理等,但这些情况应该很少。在大多数情况下,这应该会给你很好的统计数据。

0

对于初学者,您可以试试并检查邮件标题中的User Agent。不过,恶意的bot会伪造。更劳动密集型的方法是以编程方式登录/检查您的IP访问(查看Web日志文件,或者自己收集它们),并根据访问频率推断其中哪些是机器人。等等。猫和老鼠游戏。