• C#判断访问网站的设备类型


    同样也是在破解版的HISHOP源码上扒出来的,代码如下:

    protected void InitVisitorTerminal()
            {
                VisitorTerminal visitorTerminal = new VisitorTerminal();
                string userAgent = base.Request.UserAgent;
                if (string.IsNullOrWhiteSpace(userAgent))
                {
                    userAgent = "";
                }
                userAgent = userAgent.ToLower();
                bool flag = userAgent.Contains("ipad");
                bool flag1 = userAgent.Contains("iphone os");
                bool flag2 = userAgent.Contains("midp");
                bool flag3 = userAgent.Contains("rv:1.2.3.4");
                flag3 = (flag3 ? flag3 : userAgent.Contains("ucweb"));
                bool flag4 = userAgent.Contains("android");
                bool flag5 = userAgent.Contains("windows ce");
                bool flag6 = userAgent.Contains("windows mobile");
                bool flag7 = userAgent.Contains("micromessenger");
                bool flag8 = userAgent.Contains("windows phone ");
                bool flag9 = userAgent.Contains("appwebview(ios)");
                visitorTerminal.Terminal = EnumVisitorTerminal.PC;
                if ((flag || flag1 || flag2 || flag3 || flag4 || flag5 || flag6 ? true : flag8))
                {
                    visitorTerminal.Terminal = EnumVisitorTerminal.Moblie;
                }
                if ((flag ? true : flag1))
                {
                    visitorTerminal.OperaSystem = EnumVisitorOperaSystem.IOS;
                    visitorTerminal.Terminal = EnumVisitorTerminal.Moblie;
                    if (flag)
                    {
                        visitorTerminal.Terminal = EnumVisitorTerminal.PAD;
                    }
                    if (flag9)
                    {
                        visitorTerminal.Terminal = EnumVisitorTerminal.IOS;
                    }
                }
                if (flag4)
                {
                    visitorTerminal.OperaSystem = EnumVisitorOperaSystem.Android;
                    visitorTerminal.Terminal = EnumVisitorTerminal.Moblie;
                }
                if (flag7)
                {
                    visitorTerminal.Terminal = EnumVisitorTerminal.WeiXin;
                }
                if ((visitorTerminal.Terminal == EnumVisitorTerminal.Moblie || visitorTerminal.Terminal == EnumVisitorTerminal.PAD || visitorTerminal.Terminal == EnumVisitorTerminal.WeiXin ? true : visitorTerminal.Terminal == EnumVisitorTerminal.IOS))
                {
                    this.IsMobileTerminal = true;
                }
                this.visitorTerminalInfo = visitorTerminal;

            }

    有些类型是他自己里面定义好的枚举。。知道那个意思就行了。。

  • 相关阅读:
    Trap 冷启动与热启动告警
    SNMP支持IPv6
    跨函数使用内存
    动态内存分配
    结构体
    指针和数组
    组合模式
    类方法实用点语法调用
    数据结构与算法定义
    RAC初步使用
  • 原文地址:https://www.cnblogs.com/niunan/p/6913653.html
Copyright © 2020-2023  润新知