【问题标题】:How to detect platform of originating HTTP request in Java如何在 Java 中检测发起 HTTP 请求的平台
【发布时间】:2014-04-22 13:47:05
【问题描述】:

要求检测对 Web 应用程序发出的 HTTP 请求的发起设备和平台。

例如,需要检测请求是否源自桌面浏览器、选项卡或移动设备及其操作系统详细信息。 (例如:请求可以来自 android 上的 chrome)

Spring Mobile 项目提供了一个 API 来检测设备,即。手机、平板或普通(桌面);但它没有提供有关平台的任何详细信息,即。 Windows、iOS 或安卓。在进一步的分析中,Spring Mobile 项目似乎在 HTTP 请求中利用了“用户代理”标头,这可能不是确定设备和平台的可靠方法。

请告知是否有可用的第三方库来完成该任务或任何有助于实现要求的指针。

【问题讨论】:

    标签: java android ios spring httprequest


    【解决方案1】:

    正如您正确指出的,Spring Mobile 使用“用户代理”HTTP 标头来执行检测。我所知道的唯一可靠的方法是运行某种操作系统检测扫描,如NMAP 所做的,它可以让您很好地了解客户端正在运行哪种平台,它基于TCP fingerprinting

    我严重怀疑你会想在服务器环境中使用类似的东西

    Here 是一篇广泛讨论设备检测(无操作系统检测)的文章

    【讨论】:

    • 信息有很大帮助!确实不建议在服务器端进行操作系统检测扫描。
    • 很高兴你发现有用!
    【解决方案2】:

    您可以使用@RequestHeader("User-Agent") 来获取包含以下内容的用户代理标头 操作系统名称、设备等

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-26
      • 2023-02-07
      • 2019-07-31
      • 2021-12-21
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      相关资源
      最近更新 更多