asp 判断是否为搜索引擎蜘蛛的代码

2015年3月30日星期一 | | |

 
<% 
function GetBot() 
'查询蜘蛛 
dim s_agent 
GetBot="" 
s_agent=Request.ServerVariables("HTTP_USER_AGENT") '关键判断语句 
if instr(1,s_agent,"googlebot",1) >0 then 
GetBot="google" 
end if 
if instr(1,s_agent,"msnbot",1) >0 then 
GetBot="MSN" 
end if 
if instr(1,s_agent,"slurp",1) >0 then 
GetBot="Yahoo" 
end if 
if instr(1,s_agent,"baiduspider",1) >0 then 
GetBot="baidu" 
end if 
if instr(1,s_agent,"sohu-search",1) >0 then 
GetBot="Sohu" 
end if 
if instr(1,s_agent,"lycos",1) >0 then 
GetBot="Lycos" 
end if 
if instr(1,s_agent,"robozilla",1) >0 then 
GetBot="Robozilla" 
end if 
end function 
if GetBot="baidu" then 
'给百度定制的内容 
elseif GetBot="google" then 
'给google 定制的内容 
end if 
%> 

下面是比较完整的代码需要的朋友也可以参考下。里面还包括了一些客户端信息。


Class SystemInfo_Cls 
Public Browser, version, platform, IsSearch, AlexaToolbar 
Private Sub Class_Initialize() 
Dim Agent, Tmpstr 
IsSearch = False 
If Not IsEmpty(Session("SystemInfo_Cls")) Then 
Tmpstr = Split(Session("SystemInfo_Cls"), "|||") 
Browser = Tmpstr(0) 
version = Tmpstr(1) 
platform = Tmpstr(2) 
AlexaToolbar = Tmpstr(4) 
If Tmpstr(3) = "1" Then 
IsSearch = True 
End If 
Exit Sub 
End If 
Browser = "unknown" 
version = "unknown" 
platform = "unknown" 
Agent = Request.ServerVariables("HTTP_USER_AGENT") 
If InStr(Agent, "Alexa Toolbar") > 0 Then 
AlexaToolbar = "YES" 
Else 
AlexaToolbar = "NO" 
End If 
If Left(Agent, 7) = "Mozilla" Then '有此标识为浏览器 
Agent = Split(Agent, ";") 
If InStr(Agent(1), "MSIE") > 0 Then 
Browser = "Internet Explorer " 
version = Trim(Left(Replace(Agent(1), "MSIE", ""), 6)) 
ElseIf InStr(Agent(4), "Netscape") > 0 Then 
Browser = "Netscape " 
Tmpstr = Split(Agent(4), "/") 
version = Tmpstr(UBound(Tmpstr)) 
ElseIf InStr(Agent(4), "rv:") > 0 Then 
Browser = "Mozilla " 
Tmpstr = Split(Agent(4), ":") 
version = Tmpstr(UBound(Tmpstr)) 
If InStr(version, ")") > 0 Then 
Tmpstr = Split(version, ")") 
version = Tmpstr(0) 
End If 
End If 
If InStr(Agent(2), "NT 5.2") > 0 Then 
platform = "Windows 2003" 
ElseIf InStr(Agent(2), "Windows CE") > 0 Then 
platform = "Windows CE" 
ElseIf InStr(Agent(2), "NT 5.1") > 0 Then 
platform = "Windows XP" 
ElseIf InStr(Agent(2), "NT 4.0") > 0 Then 
platform = "Windows NT" 
ElseIf InStr(Agent(2), "NT 5.0") > 0 Then 
platform = "Windows 2000" 
ElseIf InStr(Agent(2), "NT") > 0 Then 
platform = "Windows NT" 
ElseIf InStr(Agent(2), "9x") > 0 Then 
platform = "Windows ME" 
ElseIf InStr(Agent(2), "98") > 0 Then 
platform = "Windows 98" 
ElseIf InStr(Agent(2), "95") > 0 Then 
platform = "Windows 95" 
ElseIf InStr(Agent(2), "Win32") > 0 Then 
platform = "Win32" 
ElseIf InStr(Agent(2), "Linux") > 0 Then 
platform = "Linux" 
ElseIf InStr(Agent(2), "SunOS") > 0 Then 
platform = "SunOS" 
ElseIf InStr(Agent(2), "Mac") > 0 Then 
platform = "Mac" 
ElseIf UBound(Agent) > 2 Then 
If InStr(Agent(3), "NT 5.1") > 0 Then 
platform = "Windows XP" 
End If 
If InStr(Agent(3), "Linux") > 0 Then 
platform = "Linux" 
End If 
End If 
If InStr(Agent(2), "Windows") > 0 And platform = "unknown" Then 
platform = "Windows" 
End If 
ElseIf Left(Agent, 5) = "Opera" Then '有此标识为浏览器 
Agent = Split(Agent, "/") 
Browser = "Mozilla " 
Tmpstr = Split(Agent(1), " ") 
version = Tmpstr(0) 
If InStr(Agent(1), "NT 5.2") > 0 Then 
platform = "Windows 2003" 
ElseIf InStr(Agent(1), "Windows CE") > 0 Then 
platform = "Windows CE" 
ElseIf InStr(Agent(1), "NT 5.1") > 0 Then 
platform = "Windows XP" 
ElseIf InStr(Agent(1), "NT 4.0") > 0 Then 
platform = "Windows NT" 
ElseIf InStr(Agent(1), "NT 5.0") > 0 Then 
platform = "Windows 2000" 
ElseIf InStr(Agent(1), "NT") > 0 Then 
platform = "Windows NT" 
ElseIf InStr(Agent(1), "9x") > 0 Then 
platform = "Windows ME" 
ElseIf InStr(Agent(1), "98") > 0 Then 
platform = "Windows 98" 
ElseIf InStr(Agent(1), "95") > 0 Then 
platform = "Windows 95" 
ElseIf InStr(Agent(1), "Win32") > 0 Then 
platform = "Win32" 
ElseIf InStr(Agent(1), "Linux") > 0 Then 
platform = "Linux" 
ElseIf InStr(Agent(1), "SunOS") > 0 Then 
platform = "SunOS" 
ElseIf InStr(Agent(1), "Mac") > 0 Then 
platform = "Mac" 
ElseIf UBound(Agent) > 2 Then 
If InStr(Agent(3), "NT 5.1") > 0 Then 
platform = "Windows XP" 
End If 
If InStr(Agent(3), "Linux") > 0 Then 
platform = "Linux" 
End If 
End If 
Else 
'识别搜索引擎 
Dim botlist, i 
botlist = "Google,Isaac,Webdup,SurveyBot,Baiduspider,ia_archiver,P.Arthur,FAST-WebCrawler,Java,Microsoft-ATL-Native,TurnitinBot,WebGather,Sleipnir" 
botlist = Split(botlist, ",") 
For i = 0 To UBound(botlist) 
If InStr(Agent, botlist(i)) > 0 Then 
platform = botlist(i) & "搜索器" 
IsSearch = True 
Exit For 
End If 
Next 
End If 
If IsSearch Then 
Browser = "" 
version = "" 
Session("SystemInfo_Cls") = Browser & "|||" & version & "|||" & platform & "|||1|||" & AlexaToolbar 
Else 
Session("SystemInfo_Cls") = Browser & "|||" & version & "|||" & platform & "|||0|||" & AlexaToolbar 
End If 
End Sub 
End Class

参考: http://www.jb51.net/article/22745.htm

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]