当谷歌机器人或其他抓取工具提出请求时,asp.net会避免在线用户数增加

时间:2012-08-15 15:53:40

标签: asp.net web-applications statistics

我们正在做

    Appliation["OnlineUsers"] += 1 in Session Start, 

然而,每当谷歌机器人扫描我们的网站时,这个数字增长得非常快,我们希望避免这种情况。我们只想为真实用户增加这个数字。

让我们知道任何其他建议

2 个答案:

答案 0 :(得分:2)

如果你想要一个正则表达式,你可以使用它来匹配许多蜘蛛,并且匹配(我发现的)常见的攻击尝试:

    '' portions of the browser string which indicate a spider
    Dim re As New Regex("bot|spider|slurp|crawler|teoma|DMOZ|;1813|findlinks|tellbaby|ia_archiver|nutch|voyager|wwwster|3dir|scooter|appie|exactseek|feedfetcher|freedir|holmes|panscient|yandex|alef|cfnetwork|kalooga|Charlotte|isara|butterfly|kilomonkey|larbin|postrank|webcollage|netcraft|Netintelligence|baypup|dragonfly|EmailSiphon|ExactSearch|LucidMedia|Mail\.Ru|MSIndianWebcrawl|PycURL|Python-urllib|Qryos|Robozilla|SBIder|StackRambler|BoardReader|scoutjet|allrati|192\.comAgent|cizilla|dnsdigger|qwant", RegexOptions.Compiled Or RegexOptions.IgnoreCase)

    '' attacks
    Dim badRe As New Regex("morfeus|nv32ts|dragostea|zmeu|DataCha0s|GT::WWW|CZ32ts", RegexOptions.IgnoreCase Or RegexOptions.Compiled)

然后

If re.IsMatch(userAgentString) Then ' it's a spider

同样适用于攻击企图。

答案 1 :(得分:1)

我建议在代码中检查用户代理,所有机器人都必须自己识别,这样你就可以进行检查了。

但是你必须以其他方式进行计数而不是检查Session start。