除了獲取 MAC 地址還能幹啥

        之前寫過一篇《在Web中獲取MAC地址》的文章,文章的地址是:https://www.cnblogs.com/tosser/p/9022187.html,我當時使用 OCX 來實現,但是 OCX 只支持 IE 瀏覽器,後來在往上找了一個 Chrome 的擴展,也解決了該問題。不過,總以爲不管使用 OCX 仍是使用 Chrome 的擴展,都是瀏覽器相關的,並不通用。後來,使用 Socket 寫了一個簡單的 DEMO,用來模擬 HTTP 服務器,而後使用 Ajax 進行通訊,問題解決了。也再也不是瀏覽器相關了。html

 

Web 頁面獲取 MAC 地址的設計思路後端

        Web 頁面獲取 MAC 地址的設計思路是比較簡單的,只須要在本地模擬一個 HTTP 服務器,而後讓 Web 頁面經過 Ajax 來請求 HTTP 服務器,HTTP 服務器直接返回本機的 MAC 地址就能夠了。
瀏覽器

        具體流程以下圖:服務器

 

        流程圖很是的清楚,主要就是 HostServer 和 Ajax 的通訊,這樣就能夠獲得 MAC 地址,而後經過 DOM 操做,便可把 MAC 地址寫入到 input 框中。這樣,就能夠和用戶名、密碼一塊兒提交給服務器進行驗證了。
微信

 

 

 

除了獲取 MAC 地址還能幹啥架構

 

       以前作過一個物流提貨的項目,涉及到一些硬件設備,包括:小票打印機、刷卡器(身份證、銀聯卡)、進幣器、密碼數字鍵盤等。這些設備、電腦主機和顯示器在一個相似 ATM 機那樣的機櫃中(其實就是 ATM 機的設備,自己這套東西就是銀行提供的)。
spa

 

       操做這些硬件的接口廠家提供了一個 OCX,而整個項目是 B/S 架構的。那麼,在客戶端想要操做這些硬件,就要調用 OCX,而 OCX 只能在 IE 瀏覽器下使用(Chrome、FireFox 是不支持 OCX 的)。衆所周知,IE 對 Web 並不友好,可是如何又能在不使用 IE 的狀況下,又去調用 OCX 來完成操做硬件的功能呢?那麼就是咱們上面的方法了。設計

 

       簡單的描述一下,就不貼圖了。htm

 

       在終端上放一個 HostServer 用來接受頁面中 Ajax 的請求,並根據請求去調用 OCX 中相應的功能,把 OCX 的返回信息,再以 Json 的格式返回給 Ajax 便可。
blog

 

       這樣,把 瀏覽器 和 OCX 文件進行了分離,中間加入了一個 HostServer,頁面 和 OCX 的通訊經過了 HostServer,那麼之後若是接口是 DLL 文件,也能夠經過 HostServer 來進行完成,固然,還能夠完成更多的功能。

 

 

 

總結

        其實整個獲取 MAC 地址的功能,對於登陸頁面而言是一個服務端,它在本地是一個可執行的程序,那麼它和普通的 EXE 文件是沒有區別的,那麼它能完成的功能其實遠遠不是獲取一個 MAC 地址的功能,對於上面的例子來講,把服務的提供者和使用者進行了分離,並且針對於本機的擴展也十分的方便了。固然,若是你願意的話,可讓 HostServer 充當客戶端直接和後端的服務器進行通訊而不經過瀏覽器,這樣是否是還能作一些讓用戶沒有感知的事情?

 


 

個人微信公衆號:「碼農UP2U」

相關文章
相關標籤/搜索