.net获取客户端信息(二)ashx部分

发布时间:2020-04-01 12:14:01 作者:哈哈怪男
来源:网络 阅读:2280

H.ashx部分代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.SessionState;


namespace DHCC.OCCS.Track

{

   /// <summary>

   /// 用户跟踪主程序

   /// </summary>

   public class H : IHttpHandler, IRequiresSessionState

   {

       public void Proce***equest(HttpContext context)

       {

           using (DB.Entities db = new DB.Entities())

           {

               context.Response.ContentType = "text/plain";

               HttpRequest request = context.Request;//生成新对象


               try

               {

                   if (request.Params["jishu"] == "1")

                   {

                       DB.BrowserOS os = new DB.BrowserOS();

                       DB.BrowserLang lang = new DB.BrowserLang();

                       DB.BrowserType type = new DB.BrowserType();

                       DB.BrowserScreen screen = new DB.BrowserScreen();

                       DB.SiteTrack st = new DB.SiteTrack();

                       //获取操作系统信息

                       string os_os = "";

                       string os_os1 = "";

                       if (request.UserAgent.IndexOf("Windows NT 6.1") != -1)//通过useragent判断类型

                       {

                           os_os1 = "window7";

                           os_os = "window7_" + request.QueryString["os"];

                       }

                       else if (request.UserAgent.IndexOf("Windows NT 6.2") != -1)

                       {

                           os_os1 = "window8";

                           os_os = "window8_" + request.QueryString["os"];

                       }

                       else if (request.UserAgent.IndexOf("Windows NT 6.0") != -1)

                       {

                           os_os1 = "Vista";

                           os_os = "Vista_" + request.QueryString["os"];

                       }

                       else if (request.UserAgent.IndexOf("Windows NT 5.0") != -1)

                       {

                           os_os1 = "Windows2000";

                           os_os = "Windows2000_" + request.QueryString["os"];

                       }

                       else if (request.UserAgent.IndexOf("Windows NT 5.1") != -1)

                       {

                           os_os1 = "Windows XP";

                           os_os = "Windows XP_" + request.QueryString["os"];

                       }

                       else if (request.UserAgent.IndexOf("Windows NT 5.2") != -1)

                       {

                           os_os1 = "Windows XP x64";

                           os_os = "Windows XP x64" + request.QueryString["os"];

                       }

                       else if (request.UserAgent.IndexOf("Windows NT 6.3") != -1)

                       {

                           os_os1 = "Windows 8.1";

                           os_os = "Windows 8.1_" + request.QueryString["os"];

                       }

                       var o = db.BrowserOS.FirstOrDefault(c => c.os == os_os);//判断数据是否存在

                       if (o == null)//数据不存在添加到数据库中

                       {

                           if (os_os.IndexOf("32") != -1)

                           {

                               switch (os_os1)//按操作系统类型添加数据

                               {

                                   case "window7": os.comment = "32位window7/Windows Server 2008R2系统";

                                       break;

                                   case "window8": os.comment = "32位window8/Windows Phone/Windows Server 2012系统";

                                       break;

                                   case "Vista": os.comment = "32位Vista/Windows Server 2008系统";

                                       break;

                                   case "Windows2000": os.comment = "32位Windows2000系统";

                                       break;

                                   case "Windows XP": os.comment = "32位Windows XP系统";

                                       break;

                                   case "Windows XP x64": os.comment = "32位Windows XP x64 Edition/Windows Server 2003/Windows Server 2003 R2系统";

                                       break;

                                   case "Windows 8.1": os.comment = "32位Windows 8.1/Windows Server 2012 R2系统";

                                       break;

                                   default:

                                       break;

                               }

                           }

                           else if (os_os.IndexOf("64") != -1)

                           {

                               switch (os_os1)

                               {

                                   case "window7": os.comment = "64位window7/Windows Server 2008R2系统";

                                       break;

                                   case "window8": os.comment = "64位window8/Windows Phone/Windows Server 2012系统";

                                       break;

                                   case "Vista": os.comment = "64位Vista/Windows Server 2008系统";

                                       break;

                                   case "Windows2000": os.comment = "64位Windows2000系统";

                                       break;

                                   case "Windows XP": os.comment = "64位Windows XP系统";

                                       break;

                                   case "Windows XP x64": os.comment = "64位Windows XP x64 Edition/Windows Server 2003/Windows Server 2003 R2系统";

                                       break;

                                   case "Windows 8.1": os.comment = "64位Windows 8.1/Windows Server 2012 R2系统";

                                       break;

                                   default:

                                       break;

                               }

                           }

                           os.os = os_os;

                           db.BrowserOS.Add(os);

                           st.os = os.id;

                       }

                       else//如果数据存在

                       {

                           st.os = o.id;

                       }



                       string lang_lang = request.QueryString["lang"];//浏览器语言

                       var l = db.BrowserLang.FirstOrDefault(c => c.lang == lang_lang);

                       if (l == null)

                       {

                           switch (lang_lang)

                           {

                               case "zh-cn": lang.comment = "简体中文";

                                   break;

                               default:

                                   break;

                           }

                           lang.lang = lang_lang;

                           db.BrowserLang.Add(lang);

                           st.lang = lang.id;

                       }

                       else

                       {

                           st.lang = l.id;

                       }


                       //用户分辨率

                       string screen_screen = request.QueryString["screen"];

                       var sc = db.BrowserScreen.FirstOrDefault(c => c.screen == screen_screen);

                       if (sc == null)

                       {

                           screen.screen = screen_screen;

                           db.BrowserScreen.Add(screen);

                           st.screen = screen.id;

                       }

                       else

                       {

                           st.screen = sc.id;

                       }

                       //浏览器类型

                       string type_type = "";

                       if (request.UserAgent.IndexOf("MSIE 9.0") != -1)

                       {

                           type_type = "IE9";

                       }

                       else if (request.UserAgent.IndexOf("MSIE 8.0") != -1)

                       {

                           type_type = "IE8";

                       }

                       else if (request.UserAgent.IndexOf("MSIE 7.0") != -1)

                       {

                           type_type = "IE7";

                       }

                       else if (request.UserAgent.IndexOf("MSIE 6.0") != -1)

                       {

                           type_type = "IE6";

                       }

                       else if (request.UserAgent.IndexOf("MSIE 10.0") != -1)

                       {

                           type_type = "IE10";

                       }

                       else if (request.UserAgent.IndexOf("IE 11.0") != -1)

                       {

                           type_type = "IE11";

                       }

                       else if (request.UserAgent.IndexOf("Chrome") != -1)

                       {

                           type_type = "chrome";

                       }

                       else if (request.UserAgent.IndexOf("Firefox") != -1)

                       {

                           type_type = "Firefox";

                       }

                       else if (request.UserAgent.IndexOf("Opera") != -1)

                       {

                           type_type = "Opera";

                       }

                       else if (request.UserAgent.IndexOf("360SE") != -1)

                       {

                           type_type = "360";

                       }

                       var ty = db.BrowserType.FirstOrDefault(c => c.type == type_type);

                       if (ty == null)

                       {

                           switch (type_type)

                           {

                               case "IE9": type.comment = "IE9浏览器";

                                   break;

                               case "IE8": type.comment = "IE8浏览器";

                                   break;

                               case "360": type.comment = "360浏览器";

                                   break;

                               case "Opera": type.comment = "Opera浏览器";

                                   break;

                               case "Firefox": type.comment = "Firefox浏览器";

                                   break;

                               case "IE11": type.comment = "IE11浏览器";

                                   break;

                               case "IE10": type.comment = "IE10浏览器";

                                   break;

                               case "IE7": type.comment = "IE7浏览器";

                                   break;

                               case "IE6": type.comment = "IE6浏览器";

                                   break;

                               case "chrome": type.comment = "chrome浏览器";

                                   break;

                               default:

                                   break;

                           }

                           type.type = type_type;

                           db.BrowserType.Add(type);

                           st.type = type.id;

                       }

                       else

                       {

                           st.type = ty.id;

                       }


                       st.curUrl = request.Params["curUrl"];

                       st.fromUrl = request.Params["fromUrl"];

                       st.pagein = Convert.ToDateTime(request.Params["pagein"]);//进入页面时间

                       st.ip = request.UserHostAddress;//客户端ip地址

                       st.id = Guid.NewGuid().ToString("N");//随机分配id

                       db.SiteTrack.Add(st);

                       context.Response.Write(st.id);

                   }


                   else if (request.Params["jishu"] == "2")//离开时间

                   {

                       string id_id = request.Params["id"];

                       var st1 = db.SiteTrack.FirstOrDefault(c => c.id == id_id);

                       st1.pageout = Convert.ToDateTime(request.Params["pageout"]);


                   }

                   db.SaveChanges();

               }

               catch (Exception ex)

               {


                   Console.WriteLine(ex.Message);

               }


           }

       }


       public bool IsReusable

       {

           get

           {

               return false;

           }

       }

   }

}


推荐阅读:
  1. asp.net ashx 接收post数据
  2. .net获取客户端信息(三)ashx部分--面向对象

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

客户端 request

上一篇:现代软件工程讲义 3 代码规范与代码复审

下一篇:DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》