除了获取 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”

除了获取 MAC 地址还能干啥的更多相关文章
- 在Web中获取MAC地址
很多时候都很难琢磨客户在想什么,也许是自己业务经验不足,也许是客户要显示出他在软件方面也非常的专业.记得以前听过一个故事,说一个富人想娶个媳妇,然后他比较钟意的有三个女人,然后就想从三个女人中选一个, ...
- 使用 SendARP 获取 MAC 地址(使用SendARP API函数,很多相关文章)
ARP 协议地址解析协议(ARP)是通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议.ARP 最初在 1982 年的 RFC 826 中提出并纳入互联网标准 STD 3 ...
- 【转载】VC获取MAC地址的4种方法
From:http://blog.csdn.net/pdfmaker/article/details/465748 有需求才有创造,有了问题才会想着去解决,那么我这里的获取MAC地址的第4种方法也是在 ...
- php怎么获取mac地址?
如何用php获取mac地址呢?大家知道mac地址是电脑在全球范围的唯一标识,所以这个就非常实用,比如说要做一个投票功能,那mac地址是必不可少 的,如果单纯的靠ip地址来判断这个肯定是不准确的,水分太 ...
- C# 获取MAC地址
/********************************************************************** * C# 获取MAC地址 * 说明: * 在C#中获取本 ...
- c++ windows 获取mac地址
c++ windows 获取mac地址 GetAdaptersInfo 用windows api获取mac地址和硬盘id编号 aa
- python 获取 mac 地址 的代码
python 获取 mac 地址 的例子,有需要的朋友可以参考下. #!/bin/python import os import re def GetMac(): if os.name == ...
- Java根据ip地址获取Mac地址,Java获取Mac地址
Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...
- android获取Mac地址和IP地址
获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信 ...
随机推荐
- Vbox中unbuntu15.10与win10共享文件 及开启复制粘贴功能
学习linux,一直使用的是VMware虚拟机,虽然功能很强大,但总感觉页面切换很麻烦.所以转入Vbox的使用,下面介绍下unbuntu15.10与win10共享文件. 一 共享文件夹 步骤1:启动u ...
- 基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装
最近,物联网的概念比较热门,一大批厂商抢着占领物联网的高低,包括有华为物联网.阿里云物联网.腾讯物联网.AWS物联网等等,无法一一列举,一般物联网包含设备侧开发.平台侧开发.应用侧开发,三个部分构成了 ...
- Rust入坑指南:千人千构
坑越来越深了,在坑里的同学让我看到你们的双手! 前面我们聊过了Rust最基本的几种数据类型.不知道你还记不记得,如果不记得可以先复习一下.上一个坑挖好以后,有同学私信我说坑太深了,下来的时候差点崴了脚 ...
- 如何使用代理IP进行数据抓取,PHP爬虫抓取亚马逊商品数据
什么是代理?什么情况下会用到代理IP? 代理服务器(Proxy Server),其功能就是代用户去取得网络信息,然后返回给用户.形象的说:它是网络信息的中转站.通过代理IP访问目标站,可以隐藏用户的真 ...
- 09 python学习笔记-操作excel(九)
python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的.这几个模块可以使用pip安装, ...
- Easy Poi入门
最近有一个需求,就是把excel中的内容,解析成Json对象格式的文件输出. 然后就上网找了一波资料,大神们都说用POI来做.但是我看了一下POI的解析过程,但是为了秉着高效的原则,花最少的时间去实现 ...
- spring boot 整合JPA多数据源
上个文章介绍了spring boot在使用Mybatis持久化技术的时候如何使用多数据源,今天再补充一个使用spring data jpa实现多数据源的使用情况,JPA是一套数据库持久化规范,或者称之 ...
- rem辅助式响应布局
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- NLP预训练模型-百度ERNIE2.0的效果到底有多好【附用户点评】
ERNIE是百度自研的持续学习语义理解框架,该框架支持增量引入词汇(lexical).语法 (syntactic) .语义(semantic)等3个层次的自定义预训练任务,能够全面捕捉训练语料中的词法 ...
- 记一次C#调用C++踩过的坑
一般来说,C#调用C++生产的dll,如下: C++的项目要设置为"导出dll的项目",而且导出的函数,一般为: extern "C" __declspec(d ...