none
操作系统判定 RRS feed

  • 问题

  • string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|Longhorn|ubuntu|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";

                string uAgent = Request.ServerVariables["HTTP_USER_AGENT"];
                Regex reg = new Regex(osPat);

                if (reg.IsMatch(uAgent))
                {
                    Label1.Text = "PC:"+uAgent;
                }
                else
                {
                    Label1.Text = "Mobile:"+uAgent;
                }


    "Android   UC"浏览器:

    JUC(Linux;U;2.3.4;zh-cn;GT-S5830;320*480)  UCWeb7.9.3.103/139/999

    “Android 内置”浏览器:
    Mozilla/5.0(Linux;U;Android2.3.4;zh-cn;GF-55830 Building/GIGNERBREAD)  AppleWebKit/533.1(KHTML,like Gecko )version/4.0 Mobile  Safari  533.1


    "Android"操作被认为了“PC”操作系统。


    Windows  Phone 下可以正常跳转。


    IE9:  

    Mozilla/5.0(compatible;MSIE 9.0;Windows Phone OS  7.5  ;Trident/5.0;IEMobile/9.0; HTC;HD7  T9292)

    UC:
    Mozilla/5.0(compatible;MSIE 9.0;Windows Phone OS  7.5  ;Trident/5.0;IEMobile/9.0; HTC;HD7  T9292)


    问题一:“Android”操作系统需要做特殊处理???     还有“UC浏览器”???


    问题二:“Mozilla/5.0”这表示什么???    为什么“移动和PC”都有???


    问题三:
    正则表达式,去匹配“Request.ServerVariables["HTTP_USER_AGENT"];”中的所有字符是吗???   “Android”是因为匹配了“Linux”所以被认为是“PC”的对吧???

    正则表达式是区分大小写的吗???    WindowsPhone移动浏览器也有“Mozilla/5.0”这样的标示,为什么没有匹配出来???

    Science and technology is my lover.

    2012年11月8日 3:15

答案