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;

        }

 

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

posted @   牛腩  阅读(575)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示