获取客户端IP、浏览器和操作系统信息的几种方法

本文最后更新于2013年5月16日,已超过半年没有更新,如果内容失效,请反馈,谢谢!

获取客户端浏览器和操作系统信息的几种方法

穷举法:
用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 

%>
除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。
本文链接地址:
订阅本站:http://maie.name/feed投稿联系:m[at]maie.name

猜你也喜欢:

共有 0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注