/// <summary>
/// 获取客户端操作系统版本
/// </summary>
/// <returns></returns>
public static string GetOSName()
{
if (HttpContext.Current == null || HttpContext.Current.Request == null || HttpContext.Current.Request.UserAgent == null)
{ return "未知"; } var userAgent = HttpContext.Current.Request.UserAgent.ToLower(); if (userAgent.Contains("android"))
{ return "Android"; }
else if (userAgent.Contains("mac os x"))
{ return "ios"; }
else if (userAgent.Contains("windows phone"))
{ return "Windows Phone"; }
else if (userAgent.Contains("nt 10.0"))
{ return "Windows 10"; }
else if (userAgent.Contains("NT 6.3"))
{ return "Windows8.1"; }
else if (userAgent.Contains("NT 6.2"))
{ return "Windows8"; }
else if (userAgent.Contains("nt 6.1"))
{ return "Windows 7"; }
else if (userAgent.Contains("nt 6.0"))
{ return "Windows Vista/Server 2008"; }
else if (userAgent.Contains("nt 5.2"))
{ return "Windows Server 2003"; }
else if (userAgent.Contains("nt 5.1"))
{ return "Windows XP"; }
else if (userAgent.Contains("nt 5"))
{ return "Windows 2000"; }
else if (userAgent.Contains("nt 4"))
{ return "Windows NT4"; }
else if (userAgent.Contains("me"))
{ return "Windows Me"; }
else if (userAgent.Contains(""))
{ return "Windows 98"; }
else if (userAgent.Contains(""))
{ return "Windows 95"; }
else if (userAgent.Contains("mac"))
{ return "Mac"; }
else if (userAgent.Contains("unix"))
{ return "UNIX"; }
else if (userAgent.Contains("linux"))
{ return "Linux"; }
else if (userAgent.Contains("sunos"))
{ return "SunOS"; } return "未知";
} /// <summary>
/// 获取浏览器名称
/// </summary>
/// <returns></returns>
public static string GetBrowser()
{
if (HttpContext.Current == null || HttpContext.Current.Request == null || HttpContext.Current.Request.UserAgent == null)
{ return "未知"; } var userAgent = HttpContext.Current.Request.UserAgent.ToLower(); if (userAgent.Contains("opera/ucweb"))
{ return "UC Opera"; }
else if (userAgent.Contains("openwave/ ucweb"))
{ return "UCOpenwave"; }
else if (userAgent.Contains("ucweb"))
{ return "UC"; }
else if (userAgent.Contains("360se"))
{ return ""; }
else if (userAgent.Contains("metasr"))
{ return "搜狗"; }
else if (userAgent.Contains("maxthon"))
{ return "遨游"; }
else if (userAgent.Contains("the world"))
{ return "世界之窗"; }
else if (userAgent.Contains("tencenttraveler") || userAgent.Contains("qqbrowser"))
{ return "腾讯"; }
else if (userAgent.Contains("chrome"))
{ return "Chrome"; }
else if (userAgent.Contains("safari"))
{ return "safari"; }
else if (userAgent.Contains("firefox"))
{ return "Firefox"; }
else if (userAgent.Contains("opera"))
{ return "Opera"; }
else if (userAgent.Contains("msie"))
{ return "IE"; }
else
{ return System.Web.HttpContext.Current.Request.Browser.Browser; }
} /// <summary>
/// 取得客户端IP
/// </summary>
/// <returns></returns>
public static string GetClientIp()
{
var result = "0.0.0.0"; if (HttpContext.Current == null && HttpContext.Current.Request == null)
{ return result; } result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result == null || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (result == null || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
if (result == null || result == String.Empty)
{
result = "0.0.0.0";
} return result;
}

C# 服务端获取客户端 系统/浏览器/IP的更多相关文章

  1. IE8下服务端获取客户端文件的路径为C:/fakePath问题的解决方案

    上一篇文章上提到,IE8下服务端获取客户端文件的路径时,会变成C:/fakePath问题,于是乎通过文件路径去获得文件大小就失败了. 上网搜了一下,主要原因是IE8因为安全考虑,在上传文件时屏蔽了真实 ...

  2. 在容器服务中获取客户端真实源 IP

    适用范围:腾讯云容器服务(Tencent Kubernetes Engine ,TKE), 以下简称 TKE. 为什么需要获取客户端真实源 IP? 当需要能感知到服务请求来源去满足一些业务需求时,就需 ...

  3. 服务端获取客户端html页面内容-2013-6-28-2

    客户端怎么提交  整个html页面?    分析:      1>我们知道b/s模式,也知道http协议.服务端想要获取客户端的数据,客户端就 必须提交给它,服务器才能获取到.     2> ...

  4. HttpServletRequest获取浏览器、服务端和客户端信息

    如何通过HttpServletRequest来获取到上面的属性呢? 1.引入开源工具 <!-- https://mvnrepository.com/artifact/eu.bitwalker/U ...

  5. Android从服务端获取json解析显示在客户端上面

    Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...

  6. C#Winform窗体实现服务端和客户端通信例子(TCP/IP)

    Winform窗体实现服务端和客户端通信的例子,是参考这个地址 http://www.cnblogs.com/longwu/archive/2011/08/25/2153636.html 进行了一些异 ...

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

    asp.net获取服务端和客户端信息 获取服务器名:Page.Server.ManchineName获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostNam ...

  8. SVN 服务端 和 客户端

    网址大全  |  EF CodeFirst  |  电视  |  MyNPOI  |  开源  |  我的皮肤  |  ASP.NET MVC4  |  前端提升  |  LINQ  |  WCF   ...

  9. DSAPI HTTP监听服务端与客户端

    本文中,演示了使用DSAPI.网络相关.HTTP监听,快速建立服务端和客户端. HTTP监听服务端的作用,是监听指定计算机端口,以实现与IIS相同的解析服务,提供客户端的网页请求,当然,这不仅仅是应用 ...

随机推荐

  1. Jetson tk1 安装 Intel 7260 无线网卡驱动

    Jseton TK1上没有集成的无线网卡,开发板上有一个mini pci-e接口,可以插入Intel 7260这款继承了wifi和蓝牙功能的无线网卡: 该网卡实物如下图,在淘宝和Amazon上都可以买 ...

  2. python令牌桶算法

    import time class TokenBucket(object): # rate是令牌发放速度,capacity是桶的大小 def __init__(self, rate, capacity ...

  3. 【转】OpenCV对图片中的RotatedRect进行填充

    函数名:full_rotated_rect 函数参数: image输入图像,rect希望在图像中填充的RotatedRect,color填充的颜色 主要的思路是:先找到RotatedRect的四个顶点 ...

  4. jumperserver3.0的安装部署

    适用于jumperserver版本:v0.3.1-2  官网:http://www.jumpserver.org/ 系统:centos7.2 基本安装 备注:如果是centos系统最好使用基本安装,否 ...

  5. iOS8中 UILocalNotification 和 UIRemoteNotification 使用注意

    先说一个关于UILocalNotification的知识点,容易被忘记: Each app on a device is limited to 64 scheduled local notificat ...

  6. Java8实战系列一

    从java7到java8,最主要的变化可以总结为 □Lambda表达式 □ 方法引用 □流和默认方法 让我们通过一个小例子感受一下 情景 1 集合对象排序 (对list中的苹果按照重量排序) Coll ...

  7. Python源码学习(一)

    考虑到性能的要求,我在工作中用的最多的是c/c++,然而,工作中又经常会有一些验证性的工作,这些工作对性能的要求并不高,反而对完成的效率要求更高,对于这样的工作,用一种开发效率高的语言是合理的想法,鉴 ...

  8. wpf Assembly.LoadFile dll GetType 反射 抛异常 不具有由 URI 识别的资源。

    public static void LoadViewFromUri(this Window window, string baseUri) { try { var resourceLocater = ...

  9. Java中加密算法介绍及其实现

    1.Base64编码算法 Base64简介 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RF ...

  10. Luogu P3616 【富金森林公园】

    我们首先考虑一块石头高度变化对每个高度的查询的答案的影响, 即我们要记录,对于每个高度的查询的答案 所以要离散化高度(不然哪开的下数组啊) 不难发现,一次变化的对于不同高度的影响,对于一段连续高度是相 ...