• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

如何判断是手机端还是PC端

Hmg-L 2015-01-13 09:54:28
一年前做手机页面的时候,大家都用useragent,一年后的今天可能有人已经不用了。
因为都在模拟useragent,
那么问题来了。

不用useragent,如何判断是手机端还是PC端呢?

这次分给的少,前几次都是满分。结果都是没人回答,散分都散不了。

支持灌水帮顶。谢谢!

关注中....
...全文
1398 点赞 收藏 9
写回复
9 条回复
Hmg-L 2015年01月13日
这次的问题,到这里我基本放弃掉了。 还是会在服务器进行useragent的验证。 采用的方法是

Request.Browser.IsMobileDevice
以前是拿到useragent 然后进行indexof,现在看看.NET 自己封装的这个获取Browser好不好使。 帖子结束,感谢回复
回复 点赞
Hmg-L 2015年01月13日
引用 3 楼 chengbin0602 的回复:
还是要使用 useragent,这是比较稳妥的办法。如果用户刻意去模拟,你是没有任何办法的。 除非用户的浏览器是你开发的,这样就可以设计一个加密过的token来和服务端进行双向验证,否则别无他法。
你这么说让我想起了app内嵌网页,就是这样的。用个token来表示是app访问过来的。
回复 点赞
全体起立 2015年01月13日
你不信你随便找一个你认为做的很好的大网站,手机打开就自动变成wap页,电脑就是pc页,但是你用电脑模拟一下手机页,你看看是什么结果。这种事情你根本控制不了,比方说有的人把电脑的js执行给关了,就不会执行你网站的任何js,他要是把cookie关了,他可能无法登录你的网站,他要是把默认字体给改了,看到的网页样式可能会完全跟你设计的不一样了。这些你都是无法改变的事情。 这些用户只是少数,但是一定会有。你要做的其实不是非要让这些人去按照你的意愿去打开网页,而是要防止他们的非正常操作会影响到你的服务器,你的网站,以及你的网站安全。
回复 点赞
全体起立 2015年01月13日
上面说错了,是楼主,不是版主,呵呵
回复 点赞
全体起立 2015年01月13日
header 包头信息是每个浏览器自定义的,也就是说,这个不是你网站的服务器能控制的了的。 我随便写两行代码,就可以随意的模拟成任何浏览器去访问你的网站,而你的网站会以为我是使用的哪个浏览器,但其实我什么浏览器都没用。所以版主放弃吧,从逻辑上来看你这是钻牛角尖了。
回复 点赞
全体起立 2015年01月13日
还是要使用 useragent,这是比较稳妥的办法。如果用户刻意去模拟,你是没有任何办法的。 除非用户的浏览器是你开发的,这样就可以设计一个加密过的token来和服务端进行双向验证,否则别无他法。
回复 点赞
Hmg-L 2015年01月13日
引用 1 楼 rayyu1989 的回复:
没有其他值比useragent更用来标识客户端信息的,除非你在js中去做各种判断,如果是在服务端只能通过header协议头分析
是这样的,我输出了所有的headers和ServerVariables。 通过android和ios以及PC的对比,发现几乎无差异。 差异点是,不同的浏览器可能会多几个变量,比如手机端的uc浏览器有个x-ucBrowser-UA,微信浏览器有个x-Requested-with值是com.tencent.mm 我再尝试一下,看有没有新的发现。 走过路过,请签名帮顶
回复 点赞
rayyu1989 2015年01月13日
没有其他值比useragent更用来标识客户端信息的,除非你在js中去做各种判断,如果是在服务端只能通过header协议头分析
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告