通过JavaScript或DLL或JAR文件获取客户端的信息



我已经在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中。此文件将负责从客户端获取信息,并将信息发送到我们的服务器。每个客户都将获得一个软件。安装该软件后,将安装JRE,并且JAR文件将位于特定目录中。在客户端PC中存放JAR文件的另一种方法,当他们访问我们的Web应用程序时,可以将JAR文件推向客户端PC吗?我们想在他们的许可下进行。

第三架结构(通过DLL文件):

C#编写的DLL文件将位于客户端PC中。该DLL文件将负责从客户端PC获取信息。当客户何时首次访问我们的Web应用程序时,他们会询问是否要授予运行DLL的许可?如果他们获得许可,则DLL文件将保留客户端PC,并将负责提供客户端的信息。

上述任何一个架构是否有意义?您能给我上述架构的一些优点和缺点吗?如果上述体系结构/方法不可能完成我必须完成的任务,那么我可以采取哪些步骤获取客户信息?

我在Google中对此主题进行了很多研究。我了解到的是,现代浏览器限制了从客户那里获取信息。但是我想通过有价值的许可获取客户信息。

我尝试过的:

我尝试使用多个JS库(例如clientjs nodejs)来执行此操作。但是ClientJs无法提供一些信息,例如UUID,硬盘序列号。我写了一个Java代码(桌面环境),该代码可以获取PC的所有信息。但是我无法从我的JSP页面调用此代码。我还可以编写一个C#代码,该代码可以提供客户信息的输出。但是我无法从我的JSP页面打电话。

最后一个注:

希望我想说的是每个人都清楚的。请帮助我完成这项任务,或者至少给我一些有关我该怎么做的想法/建议!

对每个人的最后一个说明是我们的系统正在收集使用ActiveX的用户信息。这只是IE弯曲。我只想独立浏览器。

您不能仅在浏览器中执行DLL方法(这是出于安全原因而完成的)。为了在浏览器中执行一些编译的代码,您必须使用插件。

这个问题有几个解决方法。经过一些链接后,似乎可以通过以下选项进行。

选项1:

  • firefox允许您创建XPI扩展名aka" addon"
  • Chrome具有扩展从Chrome和Firefox上运行的HTML页面调用.dll函数

选项2:

使用NPAPI编写这些浏览器的插件。如何编写浏览器插件?

选项3:

编写签名的小程序,以调用从HTML或任何Web应用程序运行的DLL。它几乎在所有浏览器上运行。这是样本的链接。

逃脱沙箱:从applet访问本机方法

选项4:

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

从前端JavaScript加载的DLL的呼叫函数(clientsix javascript中的DLL)

选项5:

构建一个C#应用程序(仅当您使用.NET时,Windows,如果您仅使用CORECLR,则所有平台)会倾听并触发事件,以在所有连接的WebSockets上发送数据。

需要从浏览器拨打客户端DLL

选项6:

您可以将client应用程序写入C#中,该应用程序连接到JS Websocket,然后传输数据。Websocket可以检查特定的数据块,并按照您想要的方式进行处理。

我已经使用指纹扫描仪在项目中描述的方式使用了它。效果很好!如果您添加一点加密货币,甚至更好!

从前端JavaScript中加载的DLL的调用功能

选项7:

  1. 创建一个可以在用户计算机上安装的应用程序。
  2. 在此应用程序中运行嵌入式HTTP服务器。
  3. 确保嵌入式HTTP服务器返回CORS标题。
  4. 在HTTP服务器API中写下您的逻辑和终点。
  5. 使用页面上的JS查询嵌入式HTTP服务器(如果运行)。

最后一个单词:

ActiveX只是一种在IE中实现浏览器插件的方法。所有其他浏览器都使用不同的插件接口。然后,如果用户将您的插件安装在浏览器中 - 此插件将可从JS提供,您可以使用它在DLL中执行一些函数。

最新更新