CrazyCoder原创发布一个c#获取用户系统以及浏览器信息的类

很久以前写的了,有朋友问道,就发布出来给大家看看吧

包含了一个类以及一个操作系统枚举一个浏览器枚举,其实根据UserAgent还可以获取用户的Framework版本IP等等

 

但是,请注意,所有的HEADER信息都是可以伪造的HttpWebRequest对象提供伪造的方法比如来源页面等等

 using System;
using System.Collections.Generic;
using System.Text;
using System.Web;

namespace CrazyCoder.Common.Web
{
    /// <summary>
    /// 获取用户平台信息 浏览器 操作系统 是否包含Alexa
    /// Add By CrazyCoder 20070915
    /// powered by http://www.crazycoder.cn
    /// </summary>
    public class UserAgentInfo
    {
        /// <summary>
        /// 用户浏览器信息
        /// </summary>
        private UserIEType _ie;
        /// <summary>
        /// 浏览器版本
        /// </summary>
        private string _ieVersion;
        private UserOSType _os;
        private string _agentData;
        private bool _hasAlexa;
        /// <summary>
        /// 用户浏览器
        /// </summary>
        public UserIEType IE
        {
            get { return _ie; }
            set { _ie = value; }
        }
        /// <summary>
        /// 用户浏览器版本
        /// </summary>
        public string IEVersion
        {
            get { return _ieVersion; }
            set { _ieVersion = value; }
        }
        /// <summary>
        /// 用户操作系统
        /// </summary>
        public UserOSType OS
        {
            get { return _os; }
            set { _os = value; }
        }
        /// <summary>
        /// 用户系统信息
        /// </summary>
        public string AgentData
        {
            get { return _agentData; }
            set { _agentData = value; }
        }
        /// <summary>
        /// 浏览器是否含有ALEXA
        /// </summary>
        public bool HasAlexa
        {
            get { return _hasAlexa; }
            set { _hasAlexa = value; }
        }
        /// <summary>
        /// 获取浏览器信息以及操作系统信息
        /// </summary>
        public UserAgentInfo()
        {
            HttpRequest Request = HttpContext.Current.Request;
            _agentData = Request.UserAgent;
            string userAgentInfo = _agentData.ToLower();

            #region 判断浏览器
            if (Request.Browser.Crawler)
            {
                _ie = UserIEType.SearcherBot;
             
            }
            else
            {
                string ie = Request.Browser.Browser;
                _ieVersion = Request.Browser.Version;
                if (ie == null || ie == string.Empty)
                {
                    _ie = UserIEType.Unknown;
                }
                else
                {
                    ie = ie.Trim().ToLower();
                    if (ie == "ie")
                    {
                        _ie = UserIEType.MicrosoftInternetExplorer;
                        if (userAgentInfo.IndexOf("tencenttraveler") >= 0)
                            _ie = UserIEType.TencentTraveler;
                        if (userAgentInfo.IndexOf("maxthon") >= 0 || userAgentInfo.IndexOf("myie") >= 0)
                            _ie = UserIEType.Maxthon;
                        if (userAgentInfo.IndexOf("alexa") >= 0)
                            _hasAlexa = true;
                        if (userAgentInfo.IndexOf("msn") >= 0)
                            _ie = UserIEType.MSN;

                    }
                    else if (ie.IndexOf("firefox") >= 0)
                    {
                        _ie = UserIEType.FireFox;
                    }
                    else if (ie.IndexOf("opera") >= 0)
                    {
                        _ie = UserIEType.Opera;
                    }
                    else if (ie.IndexOf("netscape") >= 0)
                    {
                        _ie = UserIEType.Netscape;
                    }
                    else if (ie.IndexOf("konqueror") >= 0)
                    {
                        _ie = UserIEType.Konqueror;
                    }

                }
            }
            #endregion
            string s = userAgentInfo;
            if (s.IndexOf("nt 5.1") >= 0)
            {
                _os = UserOSType.WindowXP;
            }
            else if (s.IndexOf("nt 5.0") >= 0)
            {
                _os = UserOSType.Window2000;
            }
            else if (s.IndexOf("nt 5.2") >= 0)
            {
                _os = UserOSType.Window2003;
            }
            else if (s.IndexOf("98") >= 0)
            {
                _os = UserOSType.Windows98;
            }
            else if (s.IndexOf("nt 5.3") >= 0)
            {
                _os = UserOSType.Windows98;
            }
            else if (s.IndexOf("9x") >= 0)
            {
                _os = UserOSType.WindowMe;

            }
            else if (s.IndexOf("95") >= 0)
            {
                _os = UserOSType.Window95;

            }
            else if (s.IndexOf("windows ce") >= 0)
            {
                _os = UserOSType.WindowCE;

            }
            else if (s.IndexOf("nt 4.0") >= 0)
            {
                _os = UserOSType.WindowsNT;
            }
            else if (s.IndexOf("nt") >= 0)
            {
                _os = UserOSType.WindowsNT;
            }
            else if (s.IndexOf("Win32") >= 0)
            {
                _os = UserOSType.Window32;
            }
            else if (s.IndexOf("linux") >= 0)
            {
                _os = UserOSType.Linux;
            }
            else if (s.IndexOf("sunos") >= 0)
            {
                _os = UserOSType.SunOS;
            }
            else if (s.IndexOf("mac") >= 0)
            {
                _os = UserOSType.Mac;
            }
            else if (s.IndexOf("macintosh") >= 0)
            {
                _os = UserOSType.Macintosh;
            }
            else
            {
                _os = UserOSType.Unknown;
            }
        }

    }


    /// <summary>
    /// 用户浏览器信息
    /// Power By www.CrazyCoder.Cn
    /// </summary>
    public enum UserIEType
    {
        /// <summary>
        /// Microsoft InternetExplor
        /// </summary>
        MicrosoftInternetExplorer = 0,
        /// <summary>
        /// Netscape
        /// </summary>
        Netscape = 1,
        /// <summary>
        /// 腾讯浏览器
        /// </summary>
        TencentTraveler = 2,
        /// <summary>
        /// Maxthon
        /// </summary>
        Maxthon = 3,
        /// <summary>
        /// Mozilla
        /// </summary>
        Mozilla = 4,
        /// <summary>
        /// NetCaptor
        /// </summary>
        NetCaptor = 5,
        /// <summary>
        /// MSN
        /// </summary>
        MSN = 6,
        /// <summary>
        /// Opera
        /// </summary>
        Opera = 7,
        /// <summary>
        /// Konqueror
        /// </summary>
        Konqueror = 8,
        /// <summary>
        /// Other
        /// </summary>
        Unknown = 9,
        FireFox = 10,
        /// <summary>
        /// 搜索引擎
        /// </summary>
        SearcherBot = 11


    }
    /// <summary>
    /// 用户操作系统类型
    /// powered by CrazyCoder.Cn
    /// </summary>
    public enum UserOSType
    {
        Window32 = 0,
        Window95 = 1,
        Windows98 = 2,
        WindowMe = 3,
        WindowsNT = 4,
        Window2000 = 5,
        WindowXP = 6,
        Window2003 = 7,
        WindowCE = 8,
        WindowVista = 9,
        Macintosh = 10,
        Linux = 11,
        SunOS = 12,
        Mac = 13,

        Unknown = 14
    }
}
 

Tags:  判断浏览器 获取系统信息 获取操作系统 获取浏览器信息

延伸阅读

最新评论

发表评论