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
我试图不在我的 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