C# 服务端获取客户端 系统/浏览器/IP

复制代码
        /// <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("98"))
            { return "Windows 98"; }
            else if (userAgent.Contains("95"))
            { 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 "360"; }
            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;
        }
复制代码

 

posted @   Aaxuan  阅读(2121)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示