同样也是在破解版的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;

}

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

C#判断访问网站的设备类型的更多相关文章

  1. 【ASP.NET】判断访问网站的客户端是PC还是手机

    原文:[ASP.NET]判断访问网站的客户端是PC还是手机 主要就是通过客户端传递的User-agent来判断访问网站的客户端是PC还是手机,.NET中就是Request.ServerVariable ...

  2. 【ASP.NET 进阶】判断访问网站的客户端是PC还是手机

    主要就是通过客户端传递的User-agent来判断访问网站的客户端是PC还是手机,.NET中就是Request.ServerVariables["HTTP_USER_AGENT"] ...

  3. 通过JS语句判断WEB网站的访问端是电脑还是手机

    通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! 目录腾讯网的适配代码如何判断访问网站的机器类型-如何判断ipadJS 判断浏览器客户端类型(ipad,iphone,android ...

  4. 判断访问浏览器客户端类型(pc,mac,ipad,iphone,android)

    <script type="text/javascript"> //平台.设备和操作系统 var system = { win: false, mac: false, ...

  5. js判断是手机还是电脑访问网站

    js判断是手机还是电脑访问网站                               <script type="text/javascript"> <!- ...

  6. JS判断web网站访问端是PC电脑还是手机

    通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! <script type="text/javascript"> <!-- //平台.设备和操 ...

  7. JS判断访问设备、客户端操作系统类型

    先给出一个实例:判断windows.linux.android 复制以下代码另存为html文件即可. <html> <head> <title>判断操作系统< ...

  8. [转]JS判断访问设备、客户端操作系统类型

    本文转自:http://www.cnblogs.com/duanguyuan/p/3534470.html 先给出一个实例:判断windows.linux.android 复制以下代码另存为html文 ...

  9. Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站

    http://www.cnblogs.com/zhongweiv/archive/2013/01/07/https.html 配置环境 了解HTTPS 配置CA证书服务器 新建示例网站并发布在IIS ...

随机推荐

  1. iWatch应用开发-oc篇

    1.创建项目 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/di ...

  2. 【FinancialKnowledge】商业银行业务知识

    商业银行业务思维导图 一.资产业务 资产业务是商业银行的主要收入来源 1.放款业务 1.1 信用放款 信用放款,是单凭借款人的信誉, 不需要提供任何抵押品的放款,是一种资本放款. 1.1.1 普通借款 ...

  3. Solidworks机构运动仿真

    使用Solidworks Motion插件可以对机构进行运动学/动力学仿真.机构约束添加完成后,可以在主动部件(关节)处添加马达进行驱动.运动可以是简单的匀速运动或者复杂的表达式.数据点形式的运动. ...

  4. V-rep学习笔记:力传感器

    VREP中可以添加力传感器,用于刚性连接在两个物体之间以测量这两个物体之间的作用力或力矩.如下图所示,力传感器可以测量沿着X.Y.Z三个坐标轴的力和力矩: [Forces and torques me ...

  5. Aspect实现对方法日志的拦截记录

    在实际的业务系统中,我们通常都希望程序自动的打印方法的入参和返回值,某些特定的方法可能不想打印返回值(返回数据过大,打印日志影响效率),特有了下面的实现. 1.忽略返回值的java注解类 import ...

  6. mysql改变字符串的大小写

    INITCAP:转换每个字的第一个字符为大写LOWER:转换所有字符为小写UPPER:转换所有字符为人写 eg: LOWER(phone)

  7. 【centos6】给php命令设置全局变量三种方式

    方法一:直接运行命令export PATH=$PATH:/usr/local/webserver/php/bin 和 export PATH=$PATH:/usr/local/webserver/my ...

  8. git clone时RPC failed; curl 18 transfer closed with outstanding read data remaining

    git clone时报RPC failed; curl 18 transfer closed with outstanding read data remaining 错误 原因1:缓存区溢出 解决方 ...

  9. fedora开机出现There is a problem with the configuration server. (/usr/libexec/gconf-sanity-check-2 exited with status 256)

    Install problem!The configuration defaults for GNOME Power Manager have not been installed correctly ...

  10. mysql--SQL编程(基础知识) 学习笔记1

    1.数据库应用类型分类: 一般来说,可将数据库的应用类型分为OLTP(OnLine TransactionProcessing ,联机事务处理)和OLAP(OnLine Analysis Proces ...