1、通过 UserAgent
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
protected void Page_Load(object sender, EventArgs e)
{
//验证终端
string agent = Request.Headers[
"User-Agent"
];
if (choose_net(agent))
{
Response.Redirect(
"/mobile/"
);
}
}
//验证终端
public bool choose_net(
String
userAgent)
{
if (userAgent.IndexOf(
"Noki"
) > -1 || // Nokia phones and emulators
userAgent.IndexOf(
"Eric"
) > -1 || // Ericsson WAP phones and emulators
userAgent.IndexOf(
"WapI"
) > -1 || // Ericsson WapIDE 2.0
userAgent.IndexOf(
"MC21"
) > -1 || // Ericsson MC218
userAgent.IndexOf(
"AUR"
) > -1 || // Ericsson R320
userAgent.IndexOf(
"R380"
) > -1 || // Ericsson R380
userAgent.IndexOf(
"UP.B"
) > -1 || // UP.Browser
userAgent.IndexOf(
"WinW"
) > -1 || // WinWAP browser
userAgent.IndexOf(
"UPG1"
) > -1 || // UP.SDK 4.0
userAgent.IndexOf(
"upsi"
) > -1 || //another kind of UP.Browser
userAgent.IndexOf(
"QWAP"
) > -1 || // unknown QWAPPER browser
userAgent.IndexOf(
"Jigs"
) > -1 || // unknown JigSaw browser
userAgent.IndexOf(
"Java"
) > -1 || // unknown Java based browser
userAgent.IndexOf(
"Alca"
) > -1 || // unknown Alcatel-BE3 browser (UP based)
userAgent.IndexOf(
"MITS"
) > -1 || // unknown Mitsubishi browser
userAgent.IndexOf(
"MOT-"
) > -1 || // unknown browser (UP based)
userAgent.IndexOf(
"My S"
) > -1 ||// unknown Ericsson devkit browser
userAgent.IndexOf(
"WAPJ"
) > -1 ||//Virtual WAPJAG www.wapjag.de
userAgent.IndexOf(
"fetc"
) > -1 ||//fetchpage.cgi Perl script from www.wapcab.de
userAgent.IndexOf(
"ALAV"
) > -1 || //yet another unknown UP based browser
userAgent.IndexOf(
"Wapa"
) > -1 || //another unknown browser (Web based
"Wapalyzer"
)
userAgent.IndexOf(
"UCWEB"
) > -1 || //another unknown browser (Web based
"Wapalyzer"
)
userAgent.IndexOf(
"BlackBerry"
) > -1 || //another unknown browser (Web
based
"Wapalyzer"
)
userAgent.IndexOf(
"J2ME"
) > -1 || //another unknown browser (Web based
"Wapalyzer"
)
userAgent.IndexOf(
"Oper"
) > -1 ||
userAgent.IndexOf(
"Android"
) > -1 ||
userAgent.IndexOf(
"mozilla"
) > -1)
{
return true;
}
else
{
return false;
}
}
|
2.考虑asp.net mvc
里面有for mobile的模版
3.获取浏览器的属性
4.js判断
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<script type=
"text/javascript"
>
var
bro = navigator.userAgent;
//alert(bro);
// alert(bro.indexOf("Windows Phone"));
// iPad 浏览器navigator.userAgent(包含iPad)
if
(bro.indexOf(
"NetFront"
) > 0 || bro.indexOf(
"UCWEB"
) > 0
|| bro.indexOf(
"iPhone"
) > 0 || bro.indexOf(
"Windows CE"
) > 0
|| bro.indexOf(
"MIDP-2.0"
) > 0 || bro.indexOf(
"Android"
) > 0
|| bro.indexOf(
"Opera Mini"
) > 0 || bro.indexOf(
"SymbianOS"
) > 0
|| bro.indexOf(
"Windows Phone"
) > 0) {
window.open(
"Wap1/Index.aspx"
,
"_top"
);
}
// else if (bro.indexOf("Windows NT") > 0) {
// window.open("NewWeb/default.html", "_top");
// }
else
{
window.open(
"NewWeb/default.html"
,
"_top"
);
}
</script>
|
<script type=text/javascript>
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信
qq: u.match(/\sQQ/i) == " qq" //是否QQ
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
};
if(browser.versions.mobile || browser.versions.ios || browser.versions.android || browser.versions.iPhone || browser.versions.iPad){
window.location = "/wap/index.html";
}else{
window.location = "/PC/index.html";
}
</script>
我们再来看下如何获取PC端的客户端信息呢
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/// <summary>
/// 获取操作系统的名字
/// </summary>
/// <param name="userAgent"></param>
/// <returns></returns>
private
string
GetOSNameByUserAgent(
string
userAgent)
{
string
osVersion =
"未知"
;
if
(userAgent.Contains(
"NT 10.0"
))
{
osVersion =
"Windows 10"
;
}
else
if
(userAgent.Contains(
"NT 6.3"
))
{
osVersion =
"Windows 8.1"
;
}
else
if
(userAgent.Contains(
"NT 6.2"
))
{
osVersion =
"Windows 8"
;
}
else
if
(userAgent.Contains(
"NT 6.1"
))
{
osVersion =
"Windows 7"
;
}
else
if
(userAgent.Contains(
"NT 6.1"
))
{
osVersion =
"Windows 7"
;
}
else
if
(userAgent.Contains(
"NT 6.0"
))
{
osVersion =
"Windows Vista/Server 2008"
;
}
else
if
(userAgent.Contains(
"NT 5.2"
))
{
if
(userAgent.Contains(
"64"
))
osVersion =
"Windows XP"
;
else
osVersion =
"Windows Server 2003"
;
}
else
if
(userAgent.Contains(
"NT 5.1"
))
{
osVersion =
"Windows XP"
;
}
else
if
(userAgent.Contains(
"NT 5"
))
{
osVersion =
"Windows 2000"
;
}
else
if
(userAgent.Contains(
"NT 4"
))
{
osVersion =
"Windows NT4"
;
}
else
if
(userAgent.Contains(
"Me"
))
{
osVersion =
"Windows Me"
;
}
else
if
(userAgent.Contains(
"98"
))
{
osVersion =
"Windows 98"
;
}
else
if
(userAgent.Contains(
"95"
))
{
osVersion =
"Windows 95"
;
}
else
if
(userAgent.Contains(
"Mac"
))
{
osVersion =
"Mac"
;
}
else
if
(userAgent.Contains(
"Unix"
))
{
osVersion =
"UNIX"
;
}
else
if
(userAgent.Contains(
"Linux"
))
{
osVersion =
"Linux"
;
}
else
if
(userAgent.Contains(
"SunOS"
))
{
osVersion =
"SunOS"
;
}
else
{
osVersion = HttpContext.Current.Request.Browser.Platform;
}
return
osVersion;
}
|
基本上很全了,小伙伴们根据需求自由选择吧