获取客户端浏览器和操作系统信息的几种方法
穷举法:
用vbs中的navigator.appversion(或者.useragent)属性
此种方法可以在客户端显示,但是不可以保存到服务器端数据库里
< script language=vbscript >
document.write navigator.appversion&"< p >"
function browser(info)
info=navigator.appversion '在这里初始化了info,在实际应用中可以作为其他变量赋值
if instr(info,"msie 6")>0 then
browser="internet explorer 6.0"
elseif instr(info,"msie 5.5")>0 then
browser="internet explorer 5.5"
elseif instr(info,"msie 5.0")>0 then
browser="internet explorer 5.0"
elseif instr(info,"msie 4")>0 then
browser="internet explorer 4.0"
else
browser="未知的浏览器!"
end if
document.write "您的浏览器是:"&browser&"< p >"
end function
function system(info)
info=navigator.appversion
if instr(info,"nt 5.1")>0 then
system="windows xp"
elseif instr(info,"nt 5.0")>0 then
system="windows 2000"
elseif instr(info,"nt 4")>0 then
system="windows nt"
elseif instr(info,"98")>0 then
system="windows 98"
elseif instr(info,"me")>0 then
system="windows me"
elseif instr(info,"95")>0 then
system="windows 95"
else
system="未知的操作系统!"
end if
document.write "您的操作系统是:"&system&"< p >"
end function
call browser(info)
call system(info)
< /script >
其次:
用request.servervariables(“http_user_agent”)
<%
response.write request.servervariables("http_user_agent")&"< p >"
function browser(info)
info=request.servervariables("http_user_agent") '在这里初始化了info,在实际应用中可以作为其他变量赋值
if instr(info,"GreenBrowser")>0 then
thebrowser="GreenBrowser"
elseif instr(info,"Firefox")>0 then
thebrowser="Firefox"
elseif instr(info,"Opera")>0 then
thebrowser="Opera"
elseif instr(info,"MSIE 6")>0 then
browser="internet explorer 6.0"
elseif instr(info,"MSIE 5.5")>0 then
browser="internet explorer 5.5"
elseif instr(info,"MSIE 5.0")>0 then
browser="internet explorer 5.0"
elseif instr(info,"MSIE 4")>0 then
browser="internet explorer 4.0"
else
browser="未知的浏览器!"
end if
response.write "您的浏览器是:"&browser&"< p >"
end function
function system(info)
info=request.servervariables("http_user_agent")
if instr(info,"NT 5.1")>0 then
system="Windows XP"
elseif instr(info,"NT 5.0")>0 then
system="Windows 2000"
elseif instr(info,"NT 4")>0 then
system="Windows nt"
elseif instr(info,"98")>0 then
system="Windows 98"
elseif instr(info,"me")>0 then
system="Windows me"
elseif instr(info,"95")>0 then
system="Windows 95"
else
system="未知的操作系统!"
end if
response.write "您的操作系统是:"&system&"< p >"
end function
call browser(info)
call system(info)
%>
第三种方法:
在appversion/useragent或request.servervariables(“http_user_agent”)
=之中截取固定的字符串,把有关浏览器和操作系统的字符串截取出并显示=
=显然问题在于,如果某一天microsoft把浏览器版本的格式改变了,那么此方法会出错
=格式:浏览器版本-左数第31个字符起3个字符,系统版本-左数第44个字符起6个字符
<%
response.write request.servervariables("http_user_agent")&"< p >"
function browser2(info)
info=request.servervariables("http_user_agent")
if instr(info,"msie")>0 then 判断当前浏览器是否是"microsoft ie"类型
version=mid(info,31,3)
ie="internet explorer"
response.write "您的浏览器是:"&ie&" "&version&"< p >"
else
response.write "您的浏览器是:未知的浏览器"
end if
end function
function system2(info)
info=request.servervariables("http_user_agent")
if instr(info,"windows")>0 then 判断当前操作系统是否是"windows"平台
version=mid(info,44,6)
plat="windows"
下面还要进行判断版本,以供显示具体的平台
if instr(version,"nt 5.1")>0 then
plat="windows xp"
elseif instr(version,"nt 5.0")>0 then
plat="windows 2000"
elseif instr(version,"nt 4")>0 then
plat="windows nt"
elseif instr(version,"98")>0 then
plat="windows 98"
elseif instr(version,"me")>0 then
plat="windows me"
elseif instr(version,"95")>0 then
plat="windows 95"
else
plat="未知的操作系统!"
end if
response.write "您的操作系统是:"&plat&"< p >"
else
response.write "您的操作系统是:未知的操作系统"
end if
end function
call browser2(info)
call system2(info)
%>
另外
有人提出利用asp的activex组件mswc.browsertype的属性来实现
现在问题是,ie 6.0以上版本的这个组件还没有更新,因此随意使用会出错
我们不提倡这种方法
<%
dim bt
set bt=server.createobject("mswc.browsertype")
response.write bt.browser&"< br >"
response.write bt.version&"< br >"
response.write bt.platform&"< br >"
%>
< p align=center>获得客户端ip的方法< /p >
<%
此参数是取得透过代理服务器的客户端ip
ip=request.servervariables("http_x_forwarded_for")
if len(ip)=0 then
response.write "非代理服务器:空< p >"
直接取得客户端的ip
ip=request.servervariables("remote_addr")
response.write "代理服务器:"&ip
else
response.write "非代理服务器:"&ip&"< p >"
end if
%>
评论