asp.net实现识别客户端浏览器或操作系统

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.获取浏览器的属性

复制代码代码如下:
HttpBrowserCapabilities bc=Request.Browser; Response.Write("<script language='javascript'>alert('" + bc.Browser + "');</script>");

 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;
}

基本上很全了,小伙伴们根据需求自由选择吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值