当前位置: 首页 > news >正文

ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息(图)

先看看效果图吧:

 

代码如下:

protected void Page_Load(object sender, EventArgs e)
{
    
// 将客户端的信息添加到 Dictionary 中
    Dictionary<stringstring> clientInfos = new Dictionary<stringstring>();
    
try
    {
        
string ip = Request.UserHostAddress;
        string userAgent = Request.UserAgent == null ? "" : Request.UserAgent;
        
if(Request.ServerVariables["HTTP_UA_CPU"== null)
            clientInfos.Add(
"CPU 类型""未知");
        
else
            clientInfos.Add(
"CPU 类型", Request.ServerVariables["HTTP_UA_CPU"]);
        clientInfos.Add(
"操作系统"this.GetOSNameByUserAgent(userAgent));
        clientInfos.Add(
"IP 地址", ip);
        
if(Request.Browser.ClrVersion == null)
            clientInfos.Add(
".NET CLR 版本""不支持");
        
else
            clientInfos.Add(
".NET CLR 版本", Request.Browser.ClrVersion.ToString());
        clientInfos.Add(
"浏览器", Request.Browser.Browser + Request.Browser.Version);
        clientInfos.Add(
"支持 ActiveX", Request.Browser.ActiveXControls ? "支持" : "不支持");
        clientInfos.Add(
"支持 Cookies", Request.Browser.Cookies ? "支持" : "不支持");
        clientInfos.Add(
"支持 CSS", Request.Browser.SupportsCss ? "支持" : "不支持");
        clientInfos.Add(
"语言", Request.UserLanguages[0]);

        
string httpAccept = Request.ServerVariables["HTTP_ACCEPT"];
        
if (httpAccept == null)
            clientInfos.Add(
"计算机/手机""未知");
        
else if (httpAccept.IndexOf("wap"> -1)
            clientInfos.Add(
"计算机/手机""手机");
        
else
            clientInfos.Add(
"计算机/手机""计算机");
        clientInfos.Add(
"Platform", Request.Browser.Platform);
        clientInfos.Add(
"Win16", Request.Browser.Win16 ? "" : "不是");
        clientInfos.Add(
"Win32", Request.Browser.Win32 ? "" : "不是");

        
if(Request.ServerVariables["HTTP_ACCEPT_ENCODING"== null)
            clientInfos.Add(
"Http Accept Encoding""");
        
else
            clientInfos.Add(
"Http Accept Encoding", Request.ServerVariables["HTTP_ACCEPT_ENCODING"]);
        clientInfos.Add(
"User Agent", userAgent);
    }
    
catch (Exception ex)
    {
        Response.Write(ex.Message);
    }

    
// 根据 Dictionary 中的内容在 Table 中显示客户端信息
    this.Response.Write("<table cellpadding=0 cellspacing=0>");
    
this.Response.Write("<tr>");
    
this.Response.Write("<td width=145>项目</td>");
    
this.Response.Write("<td>值</td>");
    
this.Response.Write("</tr>");
    
foreach (string key in clientInfos.Keys)
    {
        
this.Response.Write("<tr>");
        
this.Response.Write("<td>" + key + "</font></td>");
        
this.Response.Write("<td>" + clientInfos[key].ToString() + "</td>");
        
this.Response.Write("</tr>");
    }
    
this.Response.Write("</table>");           
}

这是是获取操作系统名称的代码:

ContractedBlock.gif ExpandedBlockStart.gif 根据User Agent获取操作系统名称
/// <summary>
/// 根据 User Agent 获取操作系统名称
/// </summary>
private string GetOSNameByUserAgent(string userAgent)
{
    
string osVersion = "未知";

    
if (userAgent.Contains("NT 6.0"))
    {
        osVersion 
= "Windows Vista/Server 2008";
    }
    
else if (userAgent.Contains("NT 5.2"))
    {
        osVersion 
= "Windows Server 2003";
    }
    
else if (userAgent.Contains("NT 5.1"))
    {
        osVersion 
= "Windows XP";
    }
    
else if (userAgent.Contains("NT 5"))
    {
        osVersion 
= "Windows 2000";
    }
    
else if (userAgent.Contains("NT 4"))
    {
        osVersion 
= "Windows NT4";
    }
    
else if (userAgent.Contains("Me"))
    {
        osVersion 
= "Windows Me";
    }
    
else if (userAgent.Contains("98"))
    {
        osVersion 
= "Windows 98";
    }
    
else if (userAgent.Contains("95"))
    {
        osVersion 
= "Windows 95";
    }
    
else if (userAgent.Contains("Mac"))
    {
        osVersion 
= "Mac";
    }
    
else if (userAgent.Contains("Unix"))
    {
        osVersion 
= "UNIX";
    }
    
else if (userAgent.Contains("Linux"))
    {
        osVersion 
= "Linux";
    }
    
else if (userAgent.Contains("SunOS"))
    {
        osVersion 
= "SunOS";
    }
    
return osVersion;
}

转载于:https://www.cnblogs.com/juan/archive/2009/03/29/1424333.html

相关文章:

  • Oracle数据库冷备份的还原及emca重建资料库
  • 航空乘客信息泄露咋那么容易?
  • ls命令编写
  • 智能家居老年监控市场规模将到2020年时增长将超过600%
  • linux 中断和终端测试程序
  • 公共免费Wi-Fi服务让意大利高山峡谷旅游胜地焕发活力
  • POJ 2533 Longest Ordered Subsequence
  • 解读ERP顾问的行为准则
  • 專來選擇
  • 《Node.js区块链开发》——2.4 应用场景
  • 灾备行业正在发生的4大趋势
  • Having-Sql语法
  • 联想移动裁员为求自保 摩托罗拉品牌逐渐消退
  • 隔行换色,鼠标滑过行变色 [转载]
  • 雅虎邮箱也“出血”了,雅虎选择弃用ImageMagick
  • 自己简单写的 事件订阅机制
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Android系统模拟器绘制实现概述
  • ES6 ...操作符
  • ESLint简单操作
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Less 日常用法
  • Nodejs和JavaWeb协助开发
  • sessionStorage和localStorage
  • Spring声明式事务管理之一:五大属性分析
  • Tornado学习笔记(1)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端自动化解决方案
  • 如何设计一个比特币钱包服务
  • 入手阿里云新服务器的部署NODE
  • 设计模式 开闭原则
  • 思考 CSS 架构
  • 原生Ajax
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • hi-nginx-1.3.4编译安装
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • Spring第一个helloWorld
  • ​Linux·i2c驱动架构​
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #Z0458. 树的中心2
  • (1)虚拟机的安装与使用,linux系统安装
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (转) Face-Resources
  • (转)关于pipe()的详细解析
  • (转)母版页和相对路径
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .bat文件调用java类的main方法
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 命令行参数包含应用程序路径吗?
  • .NET 使用 XPath 来读写 XML 文件
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .Net的C#语言取月份数值对应的MonthName值
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)