文档章节

asp.net获取服务端和客户端信息

Mr韦淋
 Mr韦淋
发布于 2014/06/08 10:18
字数 429
阅读 8
收藏 0

asp.net获取服务端和客户端信息  

 

获取服务器名:Page.Server.ManchineName
获取用户信息:Page.User

获取客户端电脑名:Page.Request.UserHostName
获取客户端IPPage.Request.UserHostAddress


protected void Page_Load(object sender, EventArgs e)
{
    // 将客户端的信息添加到 Dictionary 中
    Dictionary<string, string> clientInfos = new Dictionary<string, string>();
    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>");           
}

 

 

/// <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;
}

本文转载自:http://www.cnblogs.com/hzdx/p/3438735.html

共有 人打赏支持
Mr韦淋
粉丝 2
博文 80
码字总数 23114
作品 0
江门
高级程序员
IdentityServer4 实现 OpenID Connect 和 OAuth 2.0

关于 OAuth 2.0 的相关内容,点击查看:ASP.NET WebApi OWIN 实现 OAuth 2.0 OpenID 是一个去中心化的网上身份认证系统。对于支持 OpenID 的网站,用户不需要记住像用户名和密码这样的传统验...

林羽恒
2017/06/19
0
0
WCF版的PetShop之三:实现分布式的Membership和上下文传递

通过上一篇了解了模块内基本的层次划分之后,接下来我们来聊聊PetShop中一些基本基础功能的实现,以及一些设计、架构上的应用如何同WCF进行集成。本篇讨论两个问题:实现分布式的Membership和...

长平狐
2012/09/04
122
0
如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩、应用程序版本自动刷新和工程构建等内容。 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分。 AS...

葡萄城控件技术团队
2016/09/06
908
1
关于session,cookie,Cache

昨天看了《ASP.NET 页面之间传值的几种方式》之后,对session,cookie,Cache有了更近一步的了解,以下是相关的内容 一、Session 1、Session基本操作 a、创建Session //创建Session b、获取Ses...

蚊子888
2017/01/19
0
0
JQuery FlexiGrid的asp.net完美解决方案:dotNetFlexGrid-asp.net原生的异步表格控件登录 开源中国

dotNetFlexGrid- Web2.0 asynchronous grid control for asp.net What is it? dotNetFlexGrid是一款asp.net原生的异步表格控件,他的前身是Jquery FlexiGrid插件,我们重构了FlexiGrid的大部......

磊华
2010/08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取余运算

python中取余运算逻辑如下: 如果a 与d 是整数,d 非零,那么余数 r 满足这样的关系: a = qd + r , q 为整数,且0 ≤ |r| < |d|。 经过测试可发现,python3.6中取余运算得到的 r 是正整数;...

colinux
13分钟前
1
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部