访问日志中的浏览和访问信息

2015-10-06 14:42:46  访问(5002) 赞(0) 踩(0)

  • using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Web; 
    
    namespace SlowX.Core.Classes.LogClasses
    {
        /// <summary>
        /// 浏览器信息
        /// </summary>
        [Serializable]
        public class BrowserInfoClass
        {
            /// <summary>
            /// 浏览器的信息
            /// </summary>
            public BrowserInfoClass()
            {
    
            }
    
            /// <summary>
            /// SessionID
            /// </summary>
            protected string m_SessionID = null;
    
            /// <summary>
            /// SessionID
            /// </summary>
            public string SessionID
            {
                get
                {
                    return m_SessionID;
                }
                set
                {
                    m_SessionID = value;
                }
            }
    
            /// <summary>
            /// 访问页面
            /// </summary>
            protected string m_VisitWeb = null;
    
            /// <summary>
            /// 访问页面
            /// </summary>
            public string VisitWeb
            {
                get
                {
                    return m_VisitWeb;
                }
                set
                {
                    m_VisitWeb = value;
                }
            }
    
            /// <summary>
            /// 来源地址
            /// </summary>
            protected string m_UrlReferrer = null;
    
            /// <summary>
            /// 来源地址
            /// </summary>
            public string UrlReferrer
            {
                get
                {
                    return m_UrlReferrer;
                }
                set
                {
                    m_UrlReferrer = value;
                }
            }
    
            /// <summary>
            /// 来源IP
            /// </summary>
            protected string m_FromIP = null;
    
            /// <summary>
            /// 来源IP
            /// </summary>
            public string FromIP
            {
                get
                {
                    return m_FromIP;
                }
                set
                {
                    m_FromIP = value;
                }
            }
    
            /// <summary>
            /// 浏览器信息
            /// </summary>
            protected string m_BrowserInfo = null;
    
            /// <summary>
            /// 浏览器信息
            /// </summary>
            public string BrowserInfo
            {
                get
                {
                    return m_BrowserInfo;
                }
                set
                {
                    m_BrowserInfo = value;
                }
            }
    
            /// <summary>
            /// 浏览器版本
            /// </summary>
            protected string m_BrowserVersion = null;
    
            /// <summary>
            /// 浏览器版本
            /// </summary>
            public string BrowserVersion
            {
                get
                {
                    return m_BrowserVersion;
                }
                set
                {
                    m_BrowserVersion = value;
                }
            }
    
            /// <summary>
            /// 语言
            /// </summary>
            protected string m_ClientLanguage = null;
    
            /// <summary>
            /// 语言
            /// </summary>
            public string ClientLanguage
            {
                get
                {
                    return m_ClientLanguage;
                }
                set
                {
                    m_ClientLanguage = value;
                }
            }
    
            /// <summary>
            /// 操作系统
            /// </summary>
            protected string m_Platform = null;
    
            /// <summary>
            /// 操作系统
            /// </summary>
            public string Platform
            {
                get
                {
                    return m_Platform;
                }
                set
                {
                    m_Platform = value;
                }
            }
    
    
            /// <summary>
            /// 获得浏览器信息
            /// </summary>
            /// <returns></returns>
            public static BrowserInfoClass GetBrowserInfoClass()
            {
                HttpContext hc = HttpContext.Current;
    
                if (hc == null)
                    return null;
    
                if (hc.Request == null)
                    return null;
    
                HttpBrowserCapabilities HBC = hc.Request.Browser;
    
                BrowserInfoClass theResult = new BrowserInfoClass();
    
    
                try
                {
                    if (HBC == null)
                    {
                        theResult.Platform = "-";
                        theResult.BrowserInfo = "-";
                        theResult.BrowserVersion = "-";
                    }
                    else
                    {
                        theResult.Platform = HBC.Platform;
                        theResult.BrowserInfo = HBC.Browser;
                        theResult.BrowserVersion = HBC.Version;
                    }
    
                    theResult.ClientLanguage = hc.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];
                    theResult.FromIP = hc.Request.ServerVariables["REMOTE_ADDR"];
                    theResult.SessionID = GetSessionID(hc);
                    theResult.UrlReferrer = GetUrlReferrer(hc);
                    theResult.VisitWeb = GetAbsoluteUri(hc);
    
                    try
                    {
                        string xFromIP = hc.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
                        if (xFromIP != null && xFromIP.Length > 0)
                        {
                            theResult.FromIP = xFromIP;
                        }
                    }
                    catch
                    {
                    }
                }
                catch
                {
                    return null;
                }
    
                return theResult;
    
    
            }
    
    
            /// <summary>
            /// 获得浏览器信息
            /// </summary>
            /// <returns></returns>
            public static BrowserInfoClass GetBrowserInfoClass(HttpContext hc)
            {
                if (hc == null)
                    return null;
    
                if (hc.Request == null)
                    return null;
    
                HttpBrowserCapabilities HBC = hc.Request.Browser;
    
                BrowserInfoClass theResult = new BrowserInfoClass();
    
    
                try
                {
                    if (HBC == null)
                    {
                        theResult.Platform = "-";
                        theResult.BrowserInfo = "-";
                        theResult.BrowserVersion = "-";
                    }
                    else
                    {
                        theResult.Platform = HBC.Platform;
                        theResult.BrowserInfo = HBC.Browser;
                        theResult.BrowserVersion = HBC.Version;
                    }
    
                    theResult.ClientLanguage = hc.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];
                    theResult.FromIP = hc.Request.ServerVariables["REMOTE_ADDR"];
                    theResult.SessionID = GetSessionID(hc);
                    theResult.UrlReferrer = GetUrlReferrer(hc);
                    theResult.VisitWeb = GetAbsoluteUri(hc);
    
                    try
                    {
                        string xFromIP = hc.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
                        if (xFromIP != null && xFromIP.Length > 0)
                        {
                            theResult.FromIP = xFromIP;
                        }
                    }
                    catch
                    {
                    }
                }
                catch
                {
                    return null;
                }
    
                return theResult;
    
    
            }
    
    
            #region 
    
            
            /// <summary>
            /// 完整URL地址
            /// </summary>
            /// <returns></returns>
            protected static string GetAbsoluteUri()
            {
                if (HttpContext.Current == null
                    || HttpContext.Current.Request == null
                    || HttpContext.Current.Request.Url == null)
                    return "未知";
    
                return HttpContext.Current.Request.Url.AbsoluteUri;
            }
    
    
            /// <summary>
            /// 完整URL地址
            /// </summary>
            /// <param name="hc"></param>
            /// <returns></returns>
            protected static string GetAbsoluteUri(HttpContext hc)
            {
                if (hc == null || hc.Request == null || hc.Request.Url == null)
                    return "未知";
    
                return hc.Request.Url.AbsoluteUri;
            }
            
            /// <summary>
            /// 获得上一来源地址
            /// </summary>
            /// <returns></returns>
            protected static string GetUrlReferrer()
            {
                if (HttpContext.Current == null || HttpContext.Current.Request == null)
                    return "未知";
    
                if (HttpContext.Current.Request.UrlReferrer == null)
                    return "";
    
                return HttpContext.Current.Request.UrlReferrer.AbsoluteUri;
            }
    
    
            /// <summary>
            /// 获得上一来源地址
            /// </summary>
            /// <param name="hc"></param>
            /// <returns></returns>
            protected static string GetUrlReferrer(HttpContext hc)
            {
                if (hc == null || hc.Request == null)
                    return "未知";
    
                if (hc.Request.UrlReferrer == null)
                    return "";
    
                return hc.Request.UrlReferrer.AbsoluteUri;
            }
    
            
            /// <summary>
            /// 获得 SessionID
            /// </summary>
            /// <returns></returns>
            protected static string GetSessionID()
            {
                if (HttpContext.Current == null
                    || HttpContext.Current.Session == null)
                    return "未知";
    
                return HttpContext.Current.Session.SessionID;
            }
    
    
            /// <summary>
            /// 获得 SessionID
            /// </summary>
            /// <param name="hc"></param>
            /// <returns></returns>
            protected static string GetSessionID(HttpContext hc)
            {
                if (hc == null
                    || hc.Session == null)
                    return "未知";
    
                return hc.Session.SessionID;
            }
    
            #endregion 
        }
    }
    
    

  •  /// <summary>
            /// 写入访问日志
            /// </summary>
            /// <param name="xdbHelper">数据库链接串</param>
            public void InsertLogVisit(DBHelper xdbHelper)
            {
                bool bIsCreate = true;
    
                if (xdbHelper == null)
                {
                    xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
                }
                else
                {
                    // 没有打开链接 //
                    bIsCreate = xdbHelper.IsNotOpen();
                }
    
                try
                {
                    if (bIsCreate)
                        xdbHelper.OpenDBHelper();
    
                    SlowX.WebItemLib.Business.UTB_SLOWX_LOG_VISIT 
                        bll 
                        = 
                        Business.UTB_SLOWX_LOG_VISIT.instance;
    
                    SlowX.WebItemLib.Entity.UTB_SLOWX_LOG_VISIT 
                        entity 
                        = 
                        new Entity.UTB_SLOWX_LOG_VISIT();
    
                    ISaveDriver isave = entity;
    
                    BrowserInfoClass info = CommonSlowXWebItemLibFunctions.GetBrowserInfoClass();
                    string ipAddress = null;
    
                    if (info == null)
                    {
                        string ip = BasicSlowXCoreFunctions.GetIp();
                        ipAddress = GetIPAddress(ip, xdbHelper);
    
                        isave.AddISaveItem(entity._FromIP, ip);
                        isave.AddISaveItem(entity._VisitWeb, BasicSlowXCoreFunctions.GetAbsoluteUri());
                        isave.AddISaveItem(entity._IPAddress, ipAddress);
                        isave.AddISaveItem(entity._UrlReferrer, BasicSlowXCoreFunctions.GetUrlReferrer());
                        isave.AddISaveItem(entity._SessionID, BasicSlowXCoreFunctions.GetSessionID());
    
                    }
                    else
                    {
                        ipAddress = GetIPAddress(info.FromIP, xdbHelper);
    
                        isave.AddISaveItem(entity._FromIP, info.FromIP);
                        isave.AddISaveItem(entity._VisitWeb, info.VisitWeb);
                        isave.AddISaveItem(entity._IPAddress, ipAddress);
                        isave.AddISaveItem(entity._UrlReferrer, info.UrlReferrer);
                        isave.AddISaveItem(entity._SessionID, info.SessionID);
    
                        isave.AddISaveItem(entity._BrowserInfo, info.BrowserInfo);
                        isave.AddISaveItem(entity._BrowserVersion, info.BrowserVersion);
                        isave.AddISaveItem(entity._ClientLanguage, info.ClientLanguage);
                        isave.AddISaveItem(entity._Platform, info.Platform);
                    }
    
                    bll.Insert(entity, xdbHelper);
    
                    if (bIsCreate)
                        xdbHelper.EndDBHelper();
    
                }
                catch (Exception err)
                {
                    if (bIsCreate)
                        xdbHelper.TranDBHelper();
    
                    throw err;
                }
                finally
                {
                    if (bIsCreate)
                        xdbHelper.FinallyDBHelper();
                }
    
            }
    

标签:访问日志中的浏览和访问信息 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)