1. 程式人生 > >除了獲取 MAC 地址還能幹啥

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

&n