public?class?HttpRequestDeviceUtils?{
/**?Wap 게이트웨이의 고유한 설명 정보 헤더 정보를 통해?*/
private?static?String ? mobileGateWayHeaders[]?=?new?String[]?{?"ZXWAP",//?ZTE에서 제공하는 wap 게이트웨이의 경유 정보(예: Via=ZXWAP
//?GateWayZTE<) /p >
//?Technologies,
"chinamobile.com",//?China Mobile의 Nokia 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 ",//?Monternet의 게이트웨이, 예: Via=WTP/1.1
//?BJBJ-PS-WAP1-GW08.bj1.monternet.com.?(Nokia?WAP
//?Gateway?4.1?CD1/ECD13_E/4.1.05)
"infoX",//?Huawei에서 제공하는 wap 게이트웨이, 예: Via=HTTP/1.1?GDGZ -PS -GW011-WAP2?(infoX-WISG
//?Huawei?Technologies) 또는 Via=infoX?WAP?Gateway?V300R001
//?Huawei?Technologies< /p >
"XMS?724Solutions?HTG",//?해외 통신사의 Wap 게이트웨이, 어느 것인지 모르겠습니다
"wap.lizongbo.com",/ /?자체 테스트 중 시뮬레이션됨 헤더 정보
"Bytemobile", //? 네트워크 운영 효율성을 향상시키기 위한 모바일 인터넷용 솔루션인 것 같습니다. 예: Via=1.1?Bytemobile?OSN p>
// ?WebProxy/5.1
};
/**?컴퓨터의 IE 또는 Firefox 브라우저에 대한 사용자 에이전트 키워드?*/
비공개 ?static?String[]?pcHeaders?=?new?String[]?{?"Windows?98",
"Windows?ME",?"Windows?2000",? "Windows?XP",?"Windows?NT",?"Ubuntu"?};
/**?모바일 브라우저의 사용자 에이전트에 있는 키워드?*/
private? static?String[]?mobileUserAgents?=?new?String[]?{?"Nokia",//?Nokia, 이것을 쓰는 모방 휴대폰도 있습니다. 여전히 휴대폰인 Mozilla/5.0입니다. p>
//?(Nokia5800
//?XpressMusic)UC
//?AppleWebkit(like
//?Gecko) p>
//?Safari/530
"SAMSUNG",//?삼성 휴대폰
//?SAMSUNG-GT-B7722/1.SHP/VPP/ R5+Dolfin/1.5+ 넥스트리밍+SMM-MMS/1.2.프로필/MIDP-2.1+구성/CL
DC-1.1
"MIDP-2",//?j2me2.0,Mozilla/5.0?(SymbianOS/9.3;?U;?Series60/3.2
//?NokiaE75 -1?/110.48.125?프로필/MIDP-2.1
//?Configuration/CLDC-1.1?)?AppleWebKit/413?(KHTML?like
//?Gecko )?Safari/413
"CLDC1.1",//?M600/MIDP2.0/CLDC1.1/Screen-240X320
"SymbianOS",//?Symbian 시스템 ,
"MAUI",//?MTK 카피캣 머신의 기본값은 ua입니다.
"UNTRUSTED/1.0",//?카피캣 머신으로 의심되는 ua는 기본적으로 휴대폰
"Windows?CE",//?Windows?CE, Mozilla/4.0?(호환;?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인 것 같습니다. (호환;?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 휴대폰, YULONG-CoolpadN68/10.14?IPANEL/2.0?CTC/1.0
"YuLong",/ /? 아니면 Yulong
"COOLPAD",//?Yulong Coolpad YL-COOLPADS100/08.10.S100?POLARIS/2.9?CTC/1.0
"TIANYU",// ?Tianyu 휴대폰 TIANYU-KTOUCH/V209/MIDP2.0/CLDC1.1/Screen-240X320
"TY-",//?Tianyu, TY-F6229/701116_6215_V0230?JUPITOR/2.2?CTC/1.0
"K-Touch",//?또는 Tianyu K-Touch_N2200_CMCC/TBG110022_1223_V0801?MTK/6223
//?Release/30.07.2008?Browser/WAP2.0 p>
"Haier",//?Haier 휴대폰, Haier-HG-M217_CMCC/3.0?Release/12.1.2007
//?Browser/WAP2.0
"DOPOD ",//?Dopod 휴대폰
"Lenovo",//?Lenovo 휴대폰, Lenovo-P650WG/S100?LMP/LML?Release/2010.02
.22
//?Profile/MIDP2.0?Configuration/CLDC1.1
"LENOVO",//?Lenovo 휴대폰(예: LENOVO-P780/176A< /p >
"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 휴대폰 DAXIAN? 20?Release/8.4.2006
//?Browser/Opera8.00?Profile/MIDP2.0?Configuration/CLDC1.1
//?Software/R533_G_11.10.54R
"SonyEricsson",//?Sony Ericsson 휴대폰, SonyEricssonP990i/R100?Mozilla/4.0
//?(호환;?MSIE ?6.0;?Symbian?OS;?405) ?Opera
//?8.65?[zh-CN]
"GIONEE",//?Gionee 휴대폰
"HTC",//?HTC 휴대폰
"ZTE",//?ZTE 휴대폰, ZTE-A211/P109A2V1.0.0/WAP2.0?프로필
"HUAWEI",//?Huawei 휴대폰,
p>"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을 지원합니까?
};
/**
*? 현재 요청의 특성을 기반으로 요청이 모바일 단말에서 오는지 여부를 판단하며 주로 특수 헤더 정보와 사용자 에이전트 헤더를 감지합니다.
*?
*?@param?request
*http 요청
*?@return?휴대폰 기능 규칙에 맞으면 해당 기능 문자열이 반환됩니다.
*/
public?static?boolean?isMobileDevice(HttpServletRequest?request)? {
boolean?pcFlag?=?false;
boolean?mobileFlag?= ?false;
String?via?=?request.g
etHeader("Via");
String?userAgent?=?request.getHeader("user-agent");
for?(int?i?=?0;? via?!=?null?&&?!via.trim().equals("")
&&?i?
if?(via.contains(mobileGateWayHeaders[i]))?{
mobileFlag?=?true;
break;
}
}
for?(int?i?=?0;?!mobileFlag?&&?userAgent?!=?null
&&?!userAgent.trim().equals ("")?&&?i?
if?(userAgent.contains(mobileUserAgents[i]))?{
mobileFlag ?=?true;
break;
}
}
for?(int?i?=?0;?userAgent ?!=?null?&&?!userAgent.trim().equals("")
&&?i?
if ?(userAgent.contains(pcHeaders[i]))?{
pcFlag?=?true;
}
}
if?(mobileFlag?==?true?&&?mobileFlag?=?pcFlag)?{
return?true;
}
return?false ;
}
}
프로그래밍 매니아 Xiong Lang의 공유