Not StartsWith(Mozilla) 是否足以识别大多数影响任何真实访问者的 bot UserAgents w/o?

Is Not StartsWith(Mozilla) enough to identify most bot UserAgents w/o affecting any real visitors?

我试图不在我的 asp.net 页面上为机器人执行一些会话初始化例程。因此,我正在考虑这样的测试:

bool IsBot = !(UserAgent.StartsWith("Mozilla") || UserAgent.Contains("Opera"));

够了吗?还有其他建议吗?它能在 99% 的情况下正常工作吗?

好的,根据我的研究,我认为以下内容就足够了:

Private _Bots As String() = New String() {"bot", "slurp", "crawl", "spider", "sleuth", "http://", "https://"}

Public Function IsBot(aRequest As HttpRequest) As Boolean
    If aRequest.Browser.Crawler Then Return True
    Dim _ua As String = aRequest.UserAgent.ToLower
    If Not (_ua.Contains("mozilla") OrElse _ua.Contains("opera")) Then Return True
    For i = 0 To _Bots.Length - 1
        If _ua.Contains(_Bots(i)) Then Return True
    Next
    Return False
End Function