`

判断移动设备环境

 
阅读更多

/**
 * 客户端判断工具
 * 
 */
public class HttpRequestDeviceUtils {

	/**Wap网关Via头信息中特有的描述信息*/
    private static String mobileGateWayHeaders[] = new String[]{
    "ZXWAP",//中兴提供的wap网关的via信息,例如:Via=ZXWAP GateWayZTE Technologies,
    "chinamobile.com",//中国移动的诺基亚wap网关,例如:Via=WTP/1.1 GDSZ-PB-GW003-WAP07.gd.chinamobile.com (Nokia WAP Gateway 4.1 CD1/ECD13_D/4.1.04)
    "monternet.com",//移动梦网的网关,例如:Via=WTP/1.1 BJBJ-PS-WAP1-GW08.bj1.monternet.com. (Nokia WAP Gateway 4.1 CD1/ECD13_E/4.1.05)
    "infoX",//华为提供的wap网关,例如:Via=HTTP/1.1 GDGZ-PS-GW011-WAP2 (infoX-WISG Huawei Technologies),或Via=infoX WAP Gateway V300R001 Huawei Technologies
    "XMS 724Solutions HTG",//国外电信运营商的wap网关,不知道是哪一家
    "wap.lizongbo.com",//自己测试时模拟的头信息
    "Bytemobile",//貌似是一个给移动互联网提供解决方案提高网络运行效率的,例如:Via=1.1 Bytemobile OSN WebProxy/5.1
    };
    
    /**电脑上的IE或Firefox浏览器等的User-Agent关键词*/
    private static String[] pcHeaders=new String[]{
    "Windows 98",
    "Windows ME",
    "Windows 2000",
    "Windows XP",
    "Windows NT",
    "Ubuntu"
    };
    
    /**手机浏览器的User-Agent里的关键词*/
    private static String[] mobileUserAgents=new String[]{
    "Nokia",//诺基亚,有山寨机也写这个的,总还算是手机,Mozilla/5.0 (Nokia5800 XpressMusic)UC AppleWebkit(like Gecko) Safari/530
    "SAMSUNG",//三星手机 SAMSUNG-GT-B7722/1.0+SHP/VPP/R5+Dolfin/1.5+Nextreaming+SMM-MMS/1.2.0+profile/MIDP-2.1+configuration/CLDC-1.1
    "MIDP-2",//j2me2.0,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
    "CLDC1.1",//M600/MIDP2.0/CLDC1.1/Screen-240X320
    "SymbianOS",//塞班系统的,
    "MAUI",//MTK山寨机默认ua
    "UNTRUSTED/1.0",//疑似山寨机的ua,基本可以确定还是手机
    "Windows CE",//Windows CE,Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)
    "iPhone",//iPhone是否也转wap?不管它,先区分出来再说。Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; zh-cn) AppleWebKit/532.9 (KHTML like Gecko) Mobile/8B117
    "iPad",//iPad的ua,Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; zh-cn) AppleWebKit/531.21.10 (KHTML like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10
    "Android",//Android是否也转wap?Mozilla/5.0 (Linux; U; Android 2.1-update1; zh-cn; XT800 Build/TITA_M2_16.22.7) AppleWebKit/530.17 (KHTML like Gecko) Version/4.0 Mobile Safari/530.17
    "BlackBerry",//BlackBerry8310/2.7.0.106-4.5.0.182
    "UCWEB",//ucweb是否只给wap页面? Nokia5800 XpressMusic/UCWEB7.5.0.66/50/999
    "ucweb",//小写的ucweb貌似是uc的代理服务器Mozilla/6.0 (compatible; MSIE 6.0;) Opera ucweb-squid
    "BREW",//很奇怪的ua,例如:REW-Applet/0x20068888 (BREW/3.1.5.20; DeviceId: 40105; Lang: zhcn) ucweb-squid
    "J2ME",//很奇怪的ua,只有J2ME四个字母
    "YULONG",//宇龙手机,YULONG-CoolpadN68/10.14 IPANEL/2.0 CTC/1.0
    "YuLong",//还是宇龙
    "COOLPAD",//宇龙酷派YL-COOLPADS100/08.10.S100 POLARIS/2.9 CTC/1.0
    "TIANYU",//天语手机TIANYU-KTOUCH/V209/MIDP2.0/CLDC1.1/Screen-240X320
    "TY-",//天语,TY-F6229/701116_6215_V0230 JUPITOR/2.2 CTC/1.0
    "K-Touch",//还是天语K-Touch_N2200_CMCC/TBG110022_1223_V0801 MTK/6223 Release/30.07.2008 Browser/WAP2.0
    "Haier",//海尔手机,Haier-HG-M217_CMCC/3.0 Release/12.1.2007 Browser/WAP2.0
    "DOPOD",//多普达手机
    "Lenovo",// 联想手机,Lenovo-P650WG/S100 LMP/LML Release/2010.02.22 Profile/MIDP2.0 Configuration/CLDC1.1
    "LENOVO",// 联想手机,比如:LENOVO-P780/176A
    "HUAQIN",//华勤手机
    "AIGO-",//爱国者居然也出过手机,AIGO-800C/2.04 TMSS-BROWSER/1.0.0 CTC/1.0
    "CTC/1.0",//含义不明
    "CTC/2.0",//含义不明
    "CMCC",//移动定制手机,K-Touch_N2200_CMCC/TBG110022_1223_V0801 MTK/6223 Release/30.07.2008 Browser/WAP2.0
    "DAXIAN",//大显手机DAXIAN X180 UP.Browser/6.2.3.2(GUI) MMP/2.0
    "MOT-",//摩托罗拉,MOT-MOTOROKRE6/1.0 LinuxOS/2.4.20 Release/8.4.2006 Browser/Opera8.00 Profile/MIDP2.0 Configuration/CLDC1.1 Software/R533_G_11.10.54R
    "SonyEricsson",// 索爱手机,SonyEricssonP990i/R100 Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; 405) Opera 8.65 [zh-CN]
    "GIONEE",//金立手机
    "HTC",//HTC手机
    "ZTE",//中兴手机,ZTE-A211/P109A2V1.0.0/WAP2.0 Profile
    "HUAWEI",//华为手机,
    "webOS",//palm手机,Mozilla/5.0 (webOS/1.4.5; U; zh-CN) AppleWebKit/532.2 (KHTML like Gecko) Version/1.0 Safari/532.2 Pre/1.0
    "GoBrowser",//3g GoBrowser.User-Agent=Nokia5230/GoBrowser/2.0.290 Safari
    "IEMobile",//Windows CE手机自带浏览器,
    "WAP2.0"//支持wap 2.0的
    };
    
    /**
    * 根据当前请求的特征,判断该请求是否来自手机终端,主要检测特殊的头信息,以及user-Agent这个header
    * @param request http请求
    * @return 如果命中手机特征规则,则返回对应的特征字符串
    */
    public static boolean isMobileDevice(HttpServletRequest request){
        boolean pcFlag = false;
        boolean mobileFlag = false;
        String via = request.getHeader("Via");
        String userAgent = request.getHeader("user-agent");
        for (int i = 0; via!=null && !via.trim().equals("") && i < mobileGateWayHeaders.length; i++) {
            if(via.contains(mobileGateWayHeaders[i])){
                mobileFlag = true;
                break;
            }
        }
        for (int i = 0;!mobileFlag && userAgent!=null && !userAgent.trim().equals("") && i < mobileUserAgents.length; i++) {
            if(userAgent.contains(mobileUserAgents[i])){
                mobileFlag = true;
                break;
            }
        }
        for (int i = 0; userAgent!=null && !userAgent.trim().equals("") && i < pcHeaders.length; i++) {
            if(userAgent.contains(pcHeaders[i])){
                pcFlag = true;
            }
        }
        if(mobileFlag==true && mobileFlag!=pcFlag){
            return true;
        }
        return false;
    }
	
}


分享到:
评论

相关推荐

    电信设备-判断移动通信终端位置的设备和方法.zip

    "电信设备-判断移动通信终端位置的设备和方法.zip"这个压缩包文件提供了一份关于这一主题的专业资料——"判断移动通信终端位置的设备和方法.pdf",它可能详细阐述了如何通过各种技术和设备来精确地确定移动通信设备...

    电信设备-基于移动设备的无线环境测控系统及方法.zip

    《基于移动设备的无线环境测控系统及方法》是一份深入探讨现代信息技术在电信设备中的应用的资料。本文档主要围绕如何利用移动设备构建无线环境测控系统,并详细阐述了相应的实现方法。以下是对这份资料内容的详尽...

    电信设备-基于移动云环境下代码迁移的终端节能方法及系统.zip

    它允许用户通过移动设备(如智能手机、平板电脑)访问存储在云端的资源和服务,降低了对本地设备硬件性能的要求,同时提供了跨平台的便捷性。在移动云环境中,计算任务可以在云端进行处理,减少了终端设备的负载,...

    判断鼠标上下左右移动.rar

    我们可以设置一个简单的阈值来判断移动方向,例如: ```python previous_x, previous_y = pyautogui.position() threshold = 10 while True: current_x, current_y = pyautogui.position() # 判断移动方向 if...

    Agent一个判断用户是PHP桌面移动访问的解析器基于Mobiledetect

    例如,移动设备通常屏幕较小,可能需要响应式设计来确保页面在不同尺寸的屏幕上都能正常显示。此外,某些功能可能在移动设备上需要特别优化,以便用户能够方便地进行操作。 “Agent”库简化了这一过程,它提供了...

    电信设备-个人移动设备的用眼环境监测器及其监测方法.zip

    当然,为了确保监测器能够更好地适应不同的用户需求和设备环境,研发团队还需不断地针对技术挑战进行改进,比如优化监测的准确性和实时性,改善用户体验等。 综上所述,《电信设备-个人移动设备的用眼环境监测器...

    移动设备的触摸传感技术

    触摸传感技术是现代移动设备,特别是智能手机的核心组成部分,它提供了直观、便捷的用户交互方式。本文将深入探讨触摸传感技术的原理、应用以及发展趋势。 触摸传感器主要基于电容变化进行工作,当手指或其他导电...

    移动基站设备与维护教学大纲1.doc

    《移动基站设备与维护》是一门针对移动通信技术专业的必修课程,旨在培养学生的基站...教学环境包括真实的移动基站机房、室分系统、天馈系统等供学生参观学习,以及实训设备供实践操作,确保能满足26名学生的教学需求。

    拷贝工程里的数据到移动设备

    在移动设备上运行应用程序时,有时需要将包含许可信息或大量数据的文件从工程中拷贝到设备上。这通常涉及到文件的复制、解压缩以及与应用程序的集成过程。"拷贝工程里的数据到移动设备"这个主题就是针对这类操作进行...

    基于angularJs移动开发,识别当前设备

    3. **WebKit浏览器识别**:WebKit是苹果和谷歌共同开发的开源渲染引擎,大多数现代移动设备都使用它。WebKit标识符通常为"WebKit"或"AppleWebKit",因此检查userAgent中是否存在这些字符串即可识别。 4. **iPhone和...

    电信设备-判断图像摄取装置是否发生移动的方法和系统.zip

    8. 能耗管理:在移动设备上,能耗是一个重要的考虑因素。系统可能需要设计节能策略,比如在无明显移动时降低图像处理频率,或者使用低功耗传感器。 9. 法规与标准:电信设备在部署时,还需要遵循一系列法规和行业...

    中国移动动力环境集中监控系统规范-LSC功能需求规范分册(V3.0.0).doc

    《中国移动动力环境集中监控系统规范-LSC功能需求规范分册(V3.0.0)》是中国移动通信有限公司发布的一份技术规范文档,旨在详细规定动力环境集中监控系统的Local Site Controller (LSC)的功能需求。该规范对于确保...

    行业分类-设备装置-具有传感器集线器的移动设备以及控制该设备的方法.zip

    在移动设备中,如智能手机、平板电脑或可穿戴设备,传感器集线器通常连接着各种各样的传感器,如加速度计、陀螺仪、磁力计、环境光传感器、湿度传感器、温度传感器等,用于实现设备的运动检测、环境感知等功能。...

    js判断是否是移动设备登陆网页的简单方法

    JavaScript作为一种强大的客户端脚本语言,提供了多种方式来判断用户是否使用移动设备浏览网页。本文将详细讲解一种简单的JavaScript方法来实现这一功能。 首先,我们通过检查`navigator.userAgent`属性来获取用户...

    传感器组合可以实现更加智能的移动设备

    本文旨在深入探讨如何通过传感器的组合与优化利用,使移动设备具备更加智能的功能,特别是在环境感知和智能通知方面。 #### 一、传感器概述 在智能手机等移动设备中,传感器扮演着极其重要的角色。它们能够帮助...

    JSP判断移动设备的正则

    总结来说,JSP中判断移动设备的方法主要依赖于对HTTP请求头`USER-AGENT`字段的分析,并使用正则表达式来匹配其中的特定词汇。通过编写特定的Java代码,并结合JSP的页面逻辑,开发者可以有效地根据用户设备类型重定向...

    电信设备-RFID-SIM移动通讯系统及其距离判断的方法.zip

    通过RFID技术,系统能够实时识别和定位移动设备,这对于资产管理、物流监控、安全防护等领域具有重要意义。 距离判断方法是RFID应用中的关键技术之一。传统的RFID系统通常只能提供存在性检测,而无法准确估计距离。...

    js_browser.rar_移动设备

    标题"js_browser.rar_移动设备"暗示了我们关注的是如何使用JavaScript在浏览器环境中识别和处理移动设备。在这个场景下,我们需要理解几个核心概念:呈现引擎、浏览器以及设备类型。 首先,**呈现引擎**是负责解释...

    移动设备指纹安全应用.pptx

    移动设备指纹技术是一种用于识别和追踪移动设备的独特标识方法,其在网络安全和用户行为分析领域具有广泛应用。在当今数字化时代,随着移动设备的普及,安全问题也随之增多,如批量请求、非法登录、恶意注册、刷单...

Global site tag (gtag.js) - Google Analytics