zoukankan      html  css  js  c++  java
  • 除了获取 MAC 地址还能干啥

            以前写过一篇《在Web中获取MAC地址》的文章,文章的地址是:https://www.cnblogs.com/tosser/p/9022187.html,我当时使用 OCX 来实现,可是 OCX 只支持 IE 浏览器,后来在往上找了一个 Chrome 的扩展,也解决了该问题。不过,总觉得无论使用 OCX 还是使用 Chrome 的扩展,都是浏览器相关的,并不通用。后来,使用 Socket 写了一个简单的 DEMO,用来模拟 HTTP 服务器,然后使用 Ajax 进行通信,问题解决了。也不再是浏览器相关了。

    Web 页面获取 MAC 地址的设计思路

            Web 页面获取 MAC 地址的设计思路是比较简单的,只需要在本地模拟一个 HTTP 服务器,然后让 Web 页面通过 Ajax 来请求 HTTP 服务器,HTTP 服务器直接返回本机的 MAC 地址就可以了。

            具体流程如下图:

     

            流程图非常的清楚,主要就是 HostServer 和 Ajax 的通信,这样就可以得到 MAC 地址,然后通过 DOM 操作,即可把 MAC 地址写入到 input 框中。这样,就可以和用户名、密码一起提交给服务器进行验证了。

     

     

    除了获取 MAC 地址还能干啥

     

           之前做过一个物流提货的项目,涉及到一些硬件设备,包括:小票打印机、刷卡器(身份证、银联卡)、进币器、密码数字键盘等。这些设备、电脑主机和显示器在一个类似 ATM 机那样的机柜中(其实就是 ATM 机的设备,本身这套东西就是银行提供的)。

     

           操作这些硬件的接口厂家提供了一个 OCX,而整个项目是 B/S 架构的。那么,在客户端想要操作这些硬件,就要调用 OCX,而 OCX 只能在 IE 浏览器下使用(Chrome、FireFox 是不支持 OCX 的)。众所周知,IE 对 Web 并不友好,但是如何又能在不使用 IE 的情况下,又去调用 OCX 来完成操作硬件的功能呢?那么就是我们上面的方法了。

     

           简单的描述一下,就不贴图了。

     

           在终端上放一个 HostServer 用来接受页面中 Ajax 的请求,并根据请求去调用 OCX 中相应的功能,把 OCX 的返回信息,再以 Json 的格式返回给 Ajax 即可。

     

           这样,把 浏览器 和 OCX 文件进行了分离,中间加入了一个 HostServer,页面 和 OCX 的通信通过了 HostServer,那么以后如果接口是 DLL 文件,也可以通过 HostServer 来进行完成,当然,还可以完成更多的功能。

     

     

    总结

            其实整个获取 MAC 地址的功能,对于登录页面而言是一个服务端,它在本地是一个可执行的程序,那么它和普通的 EXE 文件是没有区别的,那么它能完成的功能其实远远不是获取一个 MAC 地址的功能,对于上面的例子来说,把服务的提供者和使用者进行了分离,而且针对于本机的扩展也十分的方便了。当然,如果你愿意的话,可以让 HostServer 充当客户端直接和后端的服务器进行通信而不通过浏览器,这样是不是还能做一些让用户没有感知的事情?

     


     

    我的微信公众号:“码农UP2U”

  • 相关阅读:
    用C语言实现最小二乘法算法
    设计单片机日志系统
    自律的人有多可怕?(深度好文
    史上最强灯光模拟
    堡垒机
    科三路考规则还能这样记?简直神了!
    2018驾考科目三考试流程及注意事项
    安装CentOS7文字界面版后,无法联网,用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
    什么是EPEL 及 Centos上安装EPEL(转)
    【Nginx安装】CentOS7安装Nginx及配置
  • 原文地址:https://www.cnblogs.com/tosser/p/11901369.html
Copyright © 2011-2022 走看看