`

通过UserAgent判断智能手机(设备,Android,IOS)【转】

    博客分类:
  • C#
 
阅读更多
///<summary>  
    /// 根据 Agent 判断是否是智能手机  
    ///</summary>  
    ///<returns></returns>  
    public static bool CheckAgent()  
    {  
        bool flag = false;  
  
        string agent = HttpContext.Current.Request.UserAgent;  
        string[] keywords = { “Android”, “iPhone”, “iPod”, “iPad”, “Windows Phone”, “MQQBrowser” };  
  
           //排除 Windows 桌面系统  
            if (!agent.Contains(“Windows NT”) || (agent.Contains(“Windows NT”) && agent.Contains(“compatible; MSIE 9.0;”)))  
            {  
                //排除 苹果桌面系统  
                if (!agent.Contains(“Windows NT”) && !agent.Contains(“Macintosh”))  
                {  
                    foreach (string item in keywords)  
                    {  
                        if (agent.Contains(item))  
                        {  
                            flag = true;  
                            break;  
                        }  
                    }  
                }  
            }  
    
        return flag;  
    }  


代码解释:

1. !agent.Contains(“Windows NT”) && !agent.Contains(“Macintosh”) 排除Window 桌面系统 和 苹果桌面系统

2. ”Android“, “iPhone”, “iPod”, “iPad”, “Windows Phone”, “MQQBrowser” 这些是判断智能设备Agent中的关键词

3. MQQBrowser 为 QQ 手机浏览器,QQ 手机的Agent 比较特殊,所以单独判断



下面搜集的一些Agent,话说找到这么多的智能设备,好不容易啊:

Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_2 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5

MQQBrowser/25 (Linux; U; 2.3.3; zh-cn; HTC Desire S Build/GRI40;480*800)

Mozilla/5.0 (linux; U; android 2.3.3; zh-cn; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaE75-1 /110.48.125 Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413

Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8J2

Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A5313e Safari/7534.48.3

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A5313e Safari/7534.48.3

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A5313e Safari/7534.48.3

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1

Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7)      —-SAMSUNG MP7

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)          —-HTC MP7



改写为js

/**
* 验证是否为智能手机
*/
$.checkMobile = function(){
     var flag = false; 
    var agent = navigator.userAgent.toLowerCase(); 
    var keywords = [ “android”, “iphone”, “ipod”, “ipad”, “windows phone”, “mqqbrowser” ]; 
   
    //排除 Windows 桌面系统 
    if (!(agent.indexOf(“windows nt”) > -1) || (agent.indexOf(“windows nt”) > -1 && agent.indexOf(“compatible; msie 9.0;”) > -1)) { 
        //排除苹果桌面系统 
        if (!(agent.indexOf(“windows nt”) > -1) && !agent.indexOf(“macintosh”) > -1 ) { 
            for (var item in keywords) { 
                if (agent.indexOf(item) > -1 ) { 
                    flag = true; 
                    break; 
                } 
            } 
        } 
    } 
    return flag;
}


window PC

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0   —FF
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/53  —Chrome

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7  —-safari

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MDDS; InfoPath.2; Alexa Toolbar)   —-IE

Opera/9.80 (Windows NT 6.1; WOW64; U; zh-cn) Presto/2.10.229 Version/11.64  —opera

参考自:https://blog.csdn.net/Mr_dong_ya_yun/article/details/75386604
分享到:
评论

相关推荐

    asp.net 通过UserAgent判断智能设备(Android,IOS)

    最近一直在升级公司的手机站点,出了个触屏版专用的,做好后,就尝试通过 Agent 来判断相应的智能手机设备,然后跳转到新的手机站点经过不懈的努力,终于搜集了比较全的 智能设备 的 Agent,然后又写了程序,直接上...

    JS判断手机端与电脑访问

    "JS判断手机端与电脑访问"这个话题就是关于如何使用JavaScript来检测用户是通过移动设备(如智能手机或平板)还是桌面电脑(如笔记本或台式机)访问网站的。这通常涉及到设备的屏幕尺寸、触屏支持、浏览器特性等因素...

    JS辨别访问浏览器判断是android还是ios系统

    项目中需要扫描二维码之后自动分辨出是android还是ios系统,针对于不同的系统进行不同的下载。 [removed] /* * 智能机浏览器版本信息: * */ var browser = { versions: function() { var u = navigator.userAgent,...

    Discuz .net版本中的短消息系统第1/2页

    您可能感兴趣的文章:asp.net 通过UserAgent判断智能设备(Android,IOS).Net消息队列的使用方法.net 弹出消息框后导致页面样式变乱解决方法使用ASP.NET MVC 4 Async Action+jQuery实现消息通知机制的实现代码asp.net ...

    Ruby-DeviceDetector一个用Ruby编写的精确和快速的useragent解析器和设备探测器

    1. 设备识别:能够识别手机、平板、桌面电脑、智能电视等各种设备类型。 2. 操作系统识别:可以识别出iOS、Android、Windows、macOS等操作系统。 3. 浏览器识别:能识别Chrome、Firefox、Safari、Edge等常见浏览器,...

    手机APP下载页面判断是否微信

    1. **多平台支持**:确保页面能够适应不同设备和浏览器,包括Android和iOS,以及Chrome、Safari、Firefox等主流浏览器。 2. **友好的UI设计**:提供清晰的下载指南,使用大号字体和突出的颜色吸引用户的注意力。 3. ...

    javascript获取设备类型,设备名称操作系统等

    1. **设备类型检测**:库可以判断设备是否为智能手机、平板、桌面电脑或其他。这可以通过`isMobile()`方法实现,它会返回一个布尔值。 2. **操作系统检测**:可以检测出用户设备的操作系统,如iOS、Android、...

    根据USER-AGENT判断手机类型并跳转到相应的app下载页面

    在当今的移动互联网时代,智能手机用户日益增多,移动应用(APP)成为了很多服务和产品的载体。为了让用户能够更便捷地下载和使用这些移动应用,开发者往往会采用检测用户设备类型的方案,并将用户重定向至相应平台...

    JavaUser-Agent解析库

    它包含了对常见浏览器和设备的识别,帮助开发者快速识别用户所使用的设备类型(如移动设备、桌面电脑)、浏览器类型(如Chrome、Firefox)及其版本信息,甚至可以探测到操作系统(如Windows、iOS、Android)。...

    js判断是哪个平台访问

    除了基本的操作系统检测外,还可以进一步检测特定的移动设备,如iOS、Android等。以下是一些示例代码: ```javascript var userAgent = navigator.userAgent; var isIOS = /iPad|iPhone|iPod/.test(userAgent) && !...

    js智能获取浏览器版本UA信息的方法

    - ios:通过检查userAgent字符串中是否包含特定的字符序列,判断用户是否使用了iOS设备; - android:通过检查userAgent字符串中是否包含"Android"或"Linux"来判断用户是否使用Android系统或者UC浏览器; - iPhone:...

    js-UserAgent2Class

    5. **移动设备检测**:对于移动设备,`UserAgent2Class`还可以识别设备的型号,如iPhone、iPad或者Android手机,这对于提供设备定制的体验非常有价值。 6. **JavaScript API集成**:这个库可能提供了与JavaScript ...

    两款JS脚本判断手机浏览器类型跳转WAP手机网站

    这个函数同样检查`fromapp`哈希值,并通过`navigator.userAgent`检测设备类型。不过,它增加了一个额外的条件,即如果页面上存在一个ID为`bdmark`的元素,函数将不执行重定向操作。这可能用于防止在某些特定情况下...

    JS判断客户端是手机还是PC的2个代码

    这段代码的核心思想是检查当前页面URL的哈希部分是否含有"fromapp"字符串,如果无此字符串且用户代理匹配智能手机标识,则通过`location.replace`方法重定向到指定的手机站地址。这种方法可以针对特定的哈希值和用户...

    js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码

    7. 为了更好地处理浏览器类型和版本,代码中也包含了对浏览器版本的检测,例如通过检查User-Agent字符串来判断浏览器是否为移动设备,或者是否支持特定的浏览器技术特性。 8. 实例中的代码片段说明了在使用...

    JS实现判断移动端PC端功能

    "JS实现判断移动端PC端功能"这个话题就是关于如何检测用户正在使用的设备是个人电脑(PC)还是移动设备,如智能手机或平板电脑。这通常涉及到浏览器的User-Agent特性。 User-Agent是一个HTTP头字段,它包含了客户端...

    ua-parser-diwanee-js

    3. **设备类型判断**:对于移动设备和桌面设备,库可以区分出它们是智能手机、平板电脑还是传统的桌面或笔记本电脑。 4. **定制化处理**:开发者可以根据需要,对解析结果进行自定义扩展或过滤,以满足特定项目的...

Global site tag (gtag.js) - Google Analytics