2015-10-17 72 views
0

我想对访问者正在使用的设备或操作系统做出最佳估计。从浏览器代理字符串中检测设备或操作系统

唯一的类别我感兴趣的区别,分别是:

  • 的Android
  • 的iOS
  • 的Windows Phone
  • 桌面(在Windows/OS X/Linux)的
  • 其他/未知/未被发现(如搜索蜘蛛或其他)

I t不是安全相关的,所以我不介意代理字符串欺骗的风险。只是为了让访问者为他们的特定设备提供一个直接的建议。

我碰巧在PHP中工作,但任何语言都可以,我假设它只是归结为一堆正则表达式与浏览器代理字符串匹配。

回答

0

是的,这就是它归结为什么。在我以前的工作中,我有一个用于分析Apache日志文件的perl脚本,其中有超过1000行分析用户代理字符串,尽管脚本比您需要的更详细。尽管您可能想要查看用户代理字符串中显示的内容,例如在http://www.useragentstring.com/pages/All/上,但对于您所需要的/ iPhone | iPad /和/ Android /应该执行的简单操作。

+0

谢谢,但该页面上的列表似乎集中在* browser *的类型,而我只需要操作系统。知道它的Firefox并没有多大帮助,因为它仍然可以是Android,iOS,Linux等。特别是从Windows Phone告诉Windows(桌面)似乎很棘手?还有一些浏览器包含“苹果”,“Linux”和“Android”全都在一个代理字符串中,不知道如何处理这些代码? – RocketNuts

+0

是的,我指出你的列表来演示各种用户代理字符串。桌面Windows与移动Windows很棘手,您需要测试/ Windows(电话|手机| CE)/然后只是普通/ Windows /的顺序。有很多包含“Apple”的字符串,因为它们使用Apple的WebKit,所以请改为查找/ Mac OS X /。另外,如果将用户代理字符串分割为“;”,则第三个字段通常(但不总是,例如最近的Safaris)包含操作系统。不幸的是没有一个完美的解决方案。 – blm

相关问题