获取客户端IP、浏览器和操作系统信息的几种方法
获取客户端浏览器和操作系统信息的几种方法
穷举法:
用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 %>
除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。查看声明
本文链接地址: https://maie.name/337.html
订阅本站:https://maie.name/feed,打赏:https://maie.name/donation