代码之家  ›  专栏  ›  技术社区  ›  osimer pothe

通过JavaScript、dll或jar文件获取客户端信息?

  •  2
  • osimer pothe  · 技术社区  · 7 年前

    我已经用JSP为我们的客户构建了一个系统。现在我想在用户允许的情况下收集客户信息。以下信息将从我们的客户那里获得。

    1. UUID 2. Hard disk serial number 3.Ip Address 4. MAC ADdress 5.PC AND OS info
    

    目前,这是通过activeX对象完成的。但该系统仅在internet explorer浏览器中运行。我想更改系统,使其独立于浏览器。

    第一个架构(通过JavaScript):

    ,“您允许运行此脚本吗?”。如果用户允许,则脚本将驻留在客户端pc中。该脚本将负责获取有关客户端pc的信息,并将信息发送到我们的服务器。 您可以始终考虑客户端将授予运行脚本的权限,因为我们将指示客户端运行脚本。

    第二种架构(通过jar文件)

    jar文件将驻留在每个客户端PC中。该文件将负责从客户端pc获取信息,并将信息发送到我们的服务器。每个客户都将获得一个软件。安装该软件后,将安装jre,jar文件将驻留在特定目录中。

    第三种架构(通过dll文件):

    用C语言编写的dll文件将驻留在客户端pc中。此dll文件将负责从客户端pc获取信息。当客户首次访问我们的web应用程序时,他们会询问是否要授予运行dll的权限?如果他们给予许可,则dll文件将保留在客户端pc上,并负责提供客户端pc的信息。

    上述架构有意义吗? 你能告诉我上述架构的优缺点吗?如果上述架构/方法无法完成必须由我完成的任务,我可以采取哪些步骤来获取客户信息?

    我在谷歌上对这个话题做了很多研究。据我所知,现代浏览器限制了从客户端获取信息。但我想获得客户的宝贵许可。

    我所尝试的:

    最后一点:

    最后要注意的是,我们的系统正在使用ActiveX收集用户信息。这只是装订好的。我只想独立于浏览器进行操作。

    1 回复  |  直到 7 年前
        1
  •  2
  •   osimer pothe    7 年前

    您不能只在浏览器中执行dll方法(这是出于安全考虑)。为了在浏览器中执行一些编译后的代码,您必须使用插件。

    选项2:

    为使用NPAPI编写的浏览器创建插件。 How to write a browser plugin?

    编写签名小程序以调用从html或任何web应用程序运行的dll。它几乎可以在所有浏览器上运行。这是示例的链接。

    Escape the sandbox: Access native methods from an applet

    使用EDGEJ可以完成相同的任务。您可以从前端javascript中加载的DLL(在客户端javascript中加载DLL)中找到调用时的答案函数。 诀窍是在V8和CLR之间封送函数,当事件触发时,将消息发送给javascript。

    Call Function from DLL loaded in front-end javascript (load dll in clientside javascript)

    构建一个C#应用程序(如果您使用.NET,则仅适用于windows;如果您仅使用CoreCLR,则适用于所有平台),该应用程序侦听滑动并触发事件,以在所有连接的WebSocket上发送数据。

    Need to call client side DLL from browser

    选项6:

    您可以使用C语言编写一个客户端应用程序,该应用程序连接到JS websocket,然后传输数据。WebSocket可以检查特定的数据块,并按您想要的方式进行处理。

    Call Function from DLL loaded in front-end javascript

    选项7:

    1. 在此应用程序中运行嵌入式HTTP服务器。
    2. 确保嵌入式HTTP服务器返回CORS头。

    最后一句话:

    ActiveX只是在IE中实现浏览器插件的一种方法。所有其他浏览器都使用不同的插件接口。 然后,如果用户将安装您的插件在浏览器-这个插件将可从JS和您可以使用它来执行一些功能的dll。