文档章节

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
AspNetCore中基于Session的身份验证

目录 AspNetCore中基于Session的身份验证 基于Session的身份验证实现 Asp.Net Core中的Session身份认证实现 总结 AspNetCore中基于Session的身份验证 在Asp.Net框架中提供了几种身份验证方式...

guodf
09/16
0
0
WCF版的PetShop之三:实现分布式的Membership和上下文传递

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

长平狐
2012/09/04
122
0
Steeltoe之Service Discovery篇

在前文一窥Spring Cloud Eureka中,已经构建了基于Eureka的服务端与客户端,可用于实现服务注册与发现功能。而借助Steeltoe的类库,可以在.NET生态系统中使用Spring Cloud的现有模块。 Pack...

Ken.W
09/22
0
0
Asp.net生命周期与Http协议

Http协议,底层的东西还是不是特别熟悉,感觉要经过沉淀之后才能理解这些东西吧 1.Asp.net生命周期 Asp.net生命周期: 从发起请求开始,到IIS进行处理的全部过程,然后再到获取结果 当请求一...

饮雪俊枫
10/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux命令备忘录: jobs 显示Linux中的任务列表及任务状态命令

jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务。该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的...

开元中国2015
45分钟前
1
0
springboot Whitelabel Error Page(Not Found)解决方案

当出现上图图的错误时注意 报错信息 There was an unexpected error (type=Not Found, status=404). Not Found代表未访问到资源 解决方案:比较访问路径和代码的路径有没有写错 正确的访问路...

斩神魂
46分钟前
1
0
记一次hbase master停止服务的原因以及恢复

在Hdfs空间不足的情况下,拒绝写入,hbase会down掉。如果hdfs空间没有清理的情况下,重新启动hbase,会报splitlog失败,原因是wal日志重写过程中会写hdfs,写不进去导致的。重启不成功。 解决...

PageYi
49分钟前
1
0
如何从平面设计转行到UI设计?

时代的变迁,科技的进步,工具的发展,薪资的差距,促使许多人转行的原因,但平面与界面两者之间有着哪些的差异呢?如果,想要转行又该具备哪些条件呢? 平面、界面设计之间的差异性 平面设计...

mo311
52分钟前
4
0
线程池整理

一般在生产环境中,我们都不会直接new一个Thread,然后再去start(),因为这么做会不断频繁的创建线程,销毁线程,过大的线程会耗尽CPU和内存资源,大量的垃圾回收,也会给GC带来压力,延长GC停顿时间...

算法之名
54分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部