说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

ASP.NET如何用C#代码检测手机浏览器

HTML文档下载 WORD文档下载 PDF文档下载
在建设一个网站时,如果同时面向手机与桌面用户,为了使手机用户得到更佳的访问体验,我们需要检测浏览器类型,将手机浏览器的访问转到手机专门的页面。

 

在建设一个网站时,如果同时面向手机与桌面用户,为了使手机用户得到更佳的访问体验,我们需要检测

浏览器类型,将手机浏览器的访问转到手机专门的页面,我们用C#通过正则表达式来实现:

 

 

创建正则表达式

 

 

Regex b = new Regex(@"android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino", RegexOptions.IgnoreCase | RegexOptions.Multiline);

Regex v = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|e\\-|e\\/|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\\-|2|g)|yas\\-|your|zeto|zte\\-", RegexOptions.IgnoreCase | RegexOptions.Multiline); 

 

为了执行这些代码,请参考下面的步骤:
1. 添加命名空间 
using System.Text.RegularExpressions;
2. 在page Load事件中,这样处理:
string u = Request.ServerVariables["HTTP_USER_AGENT"];
Regex b = new Regex(@"android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino", RegexOptions.IgnoreCase | RegexOptions.Multiline);
Regex v = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|e\\-|e\\/|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\\-|2|g)|yas\\-|your|zeto|zte\\-", RegexOptions.IgnoreCase | RegexOptions.Multiline);
if ((b.IsMatch(u) || v.IsMatch(u.Substring(0, 4))))
{
Response.Redirect("手机浏览页面");
}
else
{
// 正常页面
}
代码中我们根据HTTP_USER_AGENT,用正则表达式来判断是否是手机在访问,这样当你用手机来浏览你的应用时,将直接转到手机页面。

 

开发者下一个待开发市场:印度 一周消息树:80%开发者背井离乡,70%经常加班 移动周报:最受欢迎的跨平台开发工具推荐 研发周报:Mt.Gox破产,都是错误编程惹的祸 数据挖掘+人工智能,教育定制化下的学霸量产 通过700合作伙伴的进一步细分,Google变得越来越像微软 一周热点:高薪必备:Hadoop求职者的6大攻略 谷歌Android主管:两周内为开发者推出可穿戴设备SDK 【OSTC讲师专访】魏子钧: “中国式开源”没有“然后” 揭秘CarPlay欲将颠覆汽车产业的真相 联想王岳源:利用Web App推动互联网转型 IT经理人:提高团队工作效率的11个方法 30美元一小时,数据科学家的收入是否太低? 选择Go语言的12个理由 动鱼数码携三款大作参战Unity游戏及应用大赛 从Google、Apple、Dropbox、Twitter和Square学到的管理哲学 软件开发就像炒股,关键看你怎么选股票! iOS 7.1正式版:新增CarPlay连接功能、完美支持iPhone 4 【OSTC讲师专访】马全一:Docker,Hadoop的竞争者来了! 福布斯:全球那些富可敌国的科技大佬们 抢工作、争资源,如此聪明的AI你拿什么阻止? iUI:移动Web应用开发必备的开源框架 支持iOS 7.1!苹果发布Xcode 5.1更新 视频云将成为2014年乐视新的发力点 3月12日:万维网迎来理念诞生25周年 《近匠》云适配CEO陈本峰:跨屏移动,曲线一样救国 Intel陈荣坤:赢取移动市场的几个先决条件 而立之年,开发者在害怕什么? 首席工程师揭秘:LinkedIn大数据后台是如何运作的 年交易额1800亿美元,揭秘PayPal成功背后的三大热门技术 微软妥协Android?向该平台推开源Office 365 SDK 为什么现在学win32 API的人这么少? 还是老问题 redhat安装问题,请高手指点 网页中有一文本框,如何约束用户输入格式 现在fanso怎么回事? 安徒生童话之六---老爹做的事总是对的 (呵呵,好故事,很美丽) 如何调用EXE或DLL程序,使被调用程序是调用程序的MDI中的一个子窗口? 《网络设计师教程》P103表5.2中 4B/5B码和4位2进制之间是怎么转换的? COM进程类组件中,在一个接口中加了一个方法,成员变量类型CString,可是不行,那该用什么? 请问那里有 motif toolkit 开发工具下载 一个mysql的问题! 出售软件源代码以及销售权! byte类型的数据如何转化成二进制数,显示给用户(如8-》0000 1000) 代征:精通vc的深圳朋友,精通网络通讯的开发和多媒体处理。 20分求助!这条警告是什么原因呀?怎么解决 ?LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF 局域网的文件共享传输是基于什么协议的? windows and dos ??? 请问大家几个技术问题!!谁能回答阿!比较着急!:) 有没有代替VB里的PICTUREBOX 的控件,VB里的不好用?????????? 我是新手,请问JSP有些什么开发软件?比如JAVA用JBUILDER。。。 请问知道整型值a=97,什么函数可以得到"a"呢?即97->"a"通过什么函数呢? 如何将十进制数转换成二进制数 函数对象的简单问题 喜欢仙剑的朋友请进。:) 恭喜恭喜? 我想制作C++ Builder4工程的安装程序,不知道用什么软件,请大家帮忙。谢谢! 请问大家几个技术问题!!谁能回答阿! 我是ASP初学者,请求一个简单的问题,Help!!! 有没有关于installshield6的书, 快看呀!我真的要不行了! 请教大家一个术语吧! 低手问题,关于Form中的数据问题,谢了。 如何用PictureBox控件显示GIF图?特急!!!!!! 单文档多视(急!) 想学delphi中关于database方面的内容,不晓得哪本书好,大家推荐好吧? “CSDN准备推出海外图书邮购服务,首批是侯捷的著作和译作” 什么时候可以开始? 谁能介绍一下嵌入开发领域比较成熟的产品?他们的功能、性能如何 关于Autocad字体的问题 在 ActiveForm 中如何初始本地数据模块!菜鸟问题! (const char *)&p转化为delphi语言该是什么? ####我拼了命也要问出这个问题的答案########## 怎样才可以描述点击窗口右上角的“x”时所发生的事件,请给个例子,谢谢了! 哪儿有Install anywhere 4下载 庆祝kylix2001,终于知道叫什么好了,耶………… VB,请问set obj=new class 和 dim obj as new class的区别????????? install anywhere 4 哪儿有下载? GGMM,向我灌水..... 如何截获视频卡串送过来的图像。 高级程序员,在weblogic上做j2ee开发半年多,jsp一年左右,求职。 那里有PB的反编译工具? ~~~~~~大家注意了: wjyasd(即使用FPE改了钱,也绝不能忘记艰苦朴素的优良作风) 这个帐号…… 文章中一句话的含义?高手进!白云深处吉普车行了两个多小时,终于登上海拔两千多米的燕山主峰玉皇顶.纵目四望,八百里燕山,一派磅礴气势.河北电视转播台高高的井架直插云霄.我们正看得 父爱的作文300字要写生病了爸爸照顾你,下午必要, 关于母爱和父爱的作文100字 大师风范这篇阅读,从大师的沉默中你体会到了什么 父爱作文300字,要描写最动情的一个瞬间!就是写一个动情的瞬间,不要太俗气了. 关于父爱母爱的作文 550--600字左右是的 大师风范阅读答案.2010—2011六年级的试题啊!照样子写词语 (技艺)高超 精彩的() ()高尚精湛的(琴艺) ( )高明 精致的()本文最后一句在写作方法上叫做 仅此一点3个含义中的第 求关于父爱的作文300字要精彩的 不要流水账 热牛奶的坚决不要 关于父爱母爱的作文350个字左右 大师风范阅读答案 苏教版啊 五年级下大练第三单元测试卷的那个啊 急QAQ原文:一位世界一流的小提琴演奏家在为人之道演奏时,从来不说话。每当学生拉完一曲,他总是再把这一曲再拉一 写父爱的作文300字,只要300字可以的加悬赏分 找一篇500字左右的作文《我心中的爱》关于父爱,母爱的. 大师什么是大阅读答案 这一刻,我感受到了父爱作文500字 关于父爱或母爱的200字作文200字,一定是200字左右!不用多!用动作描写或外貌描写, 请大师细腻翻译短文,题目也要翻译,谢谢 父爱作文 关于父爱母爱的作文500字左右 有奖励哦最好带有侧面描写哦!我不想要重复的哦!百度上能收到的我不要的哦!。。。(*^__^*) 嘻嘻……谢谢大家! 作文:一个令人感动的瞬间(体现父爱或母爱) 关于父爱的作文.老师让我们写一篇 有关于父爱的作文,要体现出父爱的伟大,要有真实感受要体现父爱的伟大,要有真实感受,自己不得少于600字. 感动作文的结尾快 “一个令人感动的瞬间”为题,写一篇作文,歌颂无私的父爱或母爱.要求有具体的细节 求作文:我深深感受到了父爱的伟大!初三的作文,600字! 《一件令我感动的事》作文结尾写汶川地震的事结尾怎么写今天要 大师风范什么意思百度知道 描写父爱或母爱的好文章急! 有关父爱感觉描写的文章父爱感觉的,不要具体事例, 阅读大师风范中:仅此一点,足以称之为大师,句中的此指的是什么? 如何写关于母爱和父爱的作文?要500字以上!写一件事!适合四年级! 父爱的作文500字 概括《大师风范》,快. 父爱母爱的好文章要不长不短,通俗易懂,直点中心. 求:关于写父爱的作文 800字 求英语阅读答案,和文章的主要内容,具体私下沟通,高手来, 急需一篇描写父爱或母爱的感人好文章最好短一点(写作业要用),希望今晚就有~谢谢了~ 父爱的作文700-800字亲身经历 18米增加六分之一米后是() 18米增加它的6/1是() 甲数是108,甲数的3/1与亿数的4/1相等 乙数是() 一根20米长的铁丝,先用去它的20/3,再用去20/3米 还剩下() 应用题 有一份稿件,小明第一天 关于母爱和父爱的作文急需母爱或者父爱的作文,要通过一件事、一次批评等等,要在今天~ 关羽父爱的作文,800字 西游记中前十回关于描写师徒四人性格特点的主要内容. 母爱或父爱的作文 写一篇有关父爱母爱的作文 800字的 -):-):-)求大师一一帮一帮 关于父爱或母爱的作文符合实际一点拉 求在父爱中成长的作文(800字) 民族风范的作文 有关父爱母爱的作文!……………………………… 关于感动的作文 800字 大师风范中小提琴家为什么说”琴声是最好的教育“? 父爱母爱作文 感动作文800字 大师风范中的小提琴家为什么说:琴声是最好的教育 关于父爱母爱的文章给哥哥哥哥哥哥哥哥哥哥哥哥哥哥哥哥 以感动为话题的作文 800字 急要有叙事的内容 上个世纪初,有一个犹太少年,他做梦都想成为像帕格尼尼那样伟大的小提琴演奏家.他一有空就练琴,可是,就连他的父母都觉得这个可怜的孩子拉得实在太蹩脚了,完全没有音乐天赋.有一天,少 有关父爱母爱的文章快 关于母爱或父爱作文150字左右 曾经在一本杂志上看到过一篇这样的文章,给我的印象很是深刻,队长杰克带领着他的队友们正在日常的维护铁路的检修工作,天气很干燥,工作枯燥乏味,杰克在这条铁路上已经工作了15年了,所 父爱300字作文我说的是父爱,而且一定要300字左右 我懂得了(母爱或父爱) 作文600字
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn