解析用户代理操作系统版本是否为空?

时间:2015-01-07 06:14:01

标签: linux parsing operating-system debian user-agent

对于下面的用户代理,os版本似乎是空的,为什么它没有值?不知道它有什么价值吗?

User Agent = Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.22+ (KHTML, like Gecko) Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/535.22+ Debian/7.0 (3.4.2-2.1) Epiphany/3.4.2 

结果:

ua_family = Epiphany, os_family = Debian, os_version = , device_family = Other, device = Desktop 

here解析用户代理。

1 个答案:

答案 0 :(得分:0)

库的main source file非常简单易读 - 看起来它对Linux发行版的了解并不多(除非它们也恰好是某种移动操作系统):

MOBILE_DEVICE_FAMILIES = (
    ...
)

PC_OS_FAMILIES = (                   <-- no Linux! :(
    'Windows 95',
    'Windows 98',
    'Windows ME',
    'Solaris',
)

MOBILE_OS_FAMILIES = (
    ...
)

MOBILE_BROWSER_FAMILIES = (
    ...
)

TABLET_DEVICE_FAMILIES = (
    ...
)

TOUCH_CAPABLE_OS_FAMILIES = (
    ...
)

TOUCH_CAPABLE_DEVICE_FAMILIES = (
    ...
)

如果你关心的只是从你的UA线上获取操作系统信息,那么UA行的几个部分用'/'分隔:

Mozilla                                  <-- Note: no "User Agent = "
5.0 (X11; Linux x86_64) AppleWebKit
535.22+ (KHTML, like Gecko) Chromium
17.0.963.56 Chrome
17.0.963.56 Safari
535.22+ Debian
7.0 (3.4.2-2.1) Epiphany
3.4.2

您基本上想要识别(X11; Linux x86_64)Debian7.0 (3.4.2-2.1) Epiphany3.4.2部分,它们会告诉您“这是基于Debian 7.0的Linux发行版x86_64内核版本为3.4.2-2.1。“

您总是可以创建一个拉取请求并为此添加一些Linux版本!