12行代碼打造員工智能簽到工具

本篇文章用python打造了一款非常實用的工具,僅僅用了12行代碼,就可以實現員工智能簽到功能,非常簡單方面。。

現有的智能簽到設備一般是靠人臉識別、指紋檢測等人體特徵實現,價格一般也不是很貴,隨便在某寶截了1張圖:

12行代碼打造員工智能簽到工具

看起來價格確實很便宜,但是自己動手做的設備不是更香嘛,哈哈!下面帶大家看看我是怎麼實現的吧!

第一步:整體思路

現代人幾乎手機不離手,我們可以通過用pyhton+外置網卡的方式抓取手機特徵碼(手機mac地址),以此判斷員工是否上班(因為網卡的有效範圍一般在2、30米)。

第二步:所需環境

ubuntu系統,python3,外置usb網卡(支持監聽模式),scapy和pandas庫(pip安裝即可)

具體步驟:

第三步:準備工作

1.在ubuntu中安裝python3(有的自帶)和pycharm(網上有很多教程,這裡不再贅述),pycharm的打開方式和windows系統有些區別,在python的bin文件夾內打開命令行輸入:

12行代碼打造員工智能簽到工具

必須用管理員權限打開,否則無權限運行程序

2.將員工的信息存入表格中,作為信息查詢的依據

12行代碼打造員工智能簽到工具

這裡只列了2條信息作為參考,其中手機的mac可以在手機設置中查詢到。

3. 打開網卡監聽模式,開啟掃描檢測功能,這兩步必須要做,而且你的網卡還要支持監聽模式

12行代碼打造員工智能簽到工具

12行代碼打造員工智能簽到工具

輸出結果:

12行代碼打造員工智能簽到工具

被遮住的station就是手機的mac地址,只要掃描到的mac地址在表格中可以查到,就可以判斷該mac對應的員工來上班了。

第四步:python代碼實現

1.用pandas讀取表格

12行代碼打造員工智能簽到工具

取df[‘mac’]作為查詢列表

2.用scapy抓取手機特徵信息

12行代碼打造員工智能簽到工具

這樣就可以抓取手機mac地址了,看起來很簡單是不是,但是裡面含有的知識點可不少。

首先嗅探函數sniff通過網卡“wlanmon”接收終端或路由器發出的信號,然後通過packetHandler函數解析該信號,而p.haslayer(Dot11ProbeReq)代表只接手終端的請求連接信號(除此之外還有路由器的廣播信號和應答信號)。

前幾年的時候,手機只要打開wlan就會自動向外發出機身的真實mac地址,但是現在的手機廠商已經意識到該問題的嚴重性,開始散發經過算法模擬出來的虛假mac。只有探測到自己曾經連接過的wifi時

才會把包含真實mac地址的請求信息發送出去。據此,智能採集設備旁邊還需要1個能上網的路由器,員工每次上班要先連接無線網,這樣我們就可以把他的mac地址採集下來了,並把時間記錄下來,代碼實現過程如下:

12行代碼打造員工智能簽到工具

程序會處於持續運行狀態,輸出結果為:

12行代碼打造員工智能簽到工具

你學會了嗎?

網絡安全小知識提醒:手機wlan不用wifi的時候一定要關閉,否則有可能洩露個人信息哦!


ps:微信群已經開通,想加入的朋友可以加我微信,並回復進群,歡迎您的到來!


分享到:


相關文章: