除了获取 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信 ...
随机推荐
- Did You AK Today? (今天你AK了吗?)
考虑到本文读者年龄原因,本文改为使用简体中文撰写. 题目描述 今有正整数 n,kn,kn,k,求 1−n1-n1−n 共 nnn 个数的全排列,按字典序的第 kkk 个. 数据满足 1≤n≤105,1 ...
- mycat+mysql搭建高可用集群1--垂直分库
mycat垂直分库 本文主要介绍了如何使用mycat对mysql数据库进行垂直分库,包括: 垂直分库的步骤 垂直分库的环境准备 配置mycat垂直分库 1. 垂直分库的步骤 收集分析业务模块间的关系 ...
- qt实现串口通讯
摘要:上位机软件程序通过QT实现,采集输入信息,根据实际需要做出合适的串口通讯协议,实现效果如下图所示: 主要实现的功能: 1.串口基本参数可选,可调 2.显示区域可选择十六进制/asicii码显示, ...
- python编程系列---白痴女朋友(我没有女朋友!)看了都能懂的TCP/IP协议介绍
前言 早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Microsoft都有各自的网络协议,互不兼容:为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为 ...
- 楼上请让路 RoarCTF2019 Writeup
Misc 签到题 RoarCTF{签到!!!} 黄金六年 文件尾部有一段base64,解码为16进制可以看到是一个压缩包 打开压缩包需要密码 使用pr抽帧 可以看到部分帧中有二维码,依次扫码即可得到k ...
- OpenGL glMatrixMode() 函数解释与例子
概述 glMatrixMode() 用以指定当前要操作的矩阵,可选值有 GL_MODELVIEW(模型视图,默认值),GL_PROJECTION(投影),GL_TEXTURE(纹理),GL_COLOR ...
- mysql8 的安装和设置
mysql8的安装 写在前面 与5.*的版本整体差不多,但是安装细节决定成败 下载 点击https://dev.mysql.com/downloads/file/?id=476233,也可以点这里,有 ...
- Easy Poi入门
最近有一个需求,就是把excel中的内容,解析成Json对象格式的文件输出. 然后就上网找了一波资料,大神们都说用POI来做.但是我看了一下POI的解析过程,但是为了秉着高效的原则,花最少的时间去实现 ...
- LeetCode刷题笔记(2)HashMap相关应用
1.问题描述 Example 1: Input: A = "this apple is sweet", B = "this apple is sour" Out ...
- 一个普通类就能干趴你的springboot,你信吗?
先声明本人并不是标题党,如果看了本篇文章并且认为没有得到任何收获,请您随便留言骂我,本人绝不还口,已经对springboot了如指掌大大神,求放过! 不BB了,直接上代码,请各位在自己的springb ...