亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取登錄用戶的設備物理地址

如何獲取登錄用戶的設備物理地址

PHP
海綿寶寶撒 2021-12-24 10:13:06
我有一個輔導網站,用戶可以在其中以導師或學生的身份加入。該站點位于 Laravel 5.4 中。注冊后,我想限制單個用戶只能從最多三個設備登錄。例如:當前的社交媒體讓我們可以靈活地從任何地方和任何設備登錄。就我而言。我想限制用戶使用前三個設備。如果用戶通過他的手機、他的電腦和他的標簽登錄,那么他應該無法通過任何其他設備登錄。我在 php 中嘗試過,但那只給了我我的系統或服務器系統的 mac 地址。ob_start();system('ipconfig /all');$mycom=ob_get_contents();ob_clean();$findme = "Physical";$pmac = strpos($mycom, $findme);$mac=substr($mycom,($pmac+36),17);echo $mac;有什么辦法可以獲得用戶設備的Mac地址嗎?這樣做是否合法?請幫忙。提前致謝。
查看完整描述

3 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

您實際嘗試解決的問題并不像聽起來那么簡單,而且通過 MAC 地址進行處理并不是一個好主意。


首先,關于整個 MAC 地址的一些快速事實:


它們只出現在網絡上的第一跳。一旦有路由設備擋路,您將看到的只是該設備的 MAC,因為從那時起,所有內容都是路由的,而不是橋接的

該躍點可以是任何東西,具體取決于距離多遠(或網絡拓撲結構的復雜程度)——來自 ISP 的某種路由設備,來自 IX 的某物等

因此,老實說,這并不是最好的判別式。喬希推薦了一個,我會推薦另一個。


在您的用戶存儲中,無論在哪里,都可以添加存儲數組的功能。在大多數關系數據庫中(如果您正在使用它),它將以附加表的形式出現。使搜索與用戶對應的條目變得容易。


為簡單起見,這里是這個想法。這是您的用戶表:


+---------------------------------------------------+

|                        users                      |

+----+----------+---------+------------+------------+

| id | username | enabled | created_at | updated_at |

+----+----------+---------+------------+------------+

我們將創建user_tokens以配合它:


+-------------------------------------------+

|                user_tokens                |

+-------+---------+------------+------------+

| token | user_id | created_at | updated_at |

+-------+---------+------------+------------+

該表應該促進對給定用戶的所有令牌的快速訪問,并且令牌在所有用戶中不應該是唯一的,只有一個,因此我們將(user_id, token)用作復合主鍵。我們還必須能夠刪除最舊的令牌,因此您將需要添加(user_id, created_at)為索引。


每當新用戶登錄時,創建一個新令牌并將其與他們的會話(或會話替代)一起存儲。如果會話數超過 N,則刪除最舊的令牌以匹配計數。


每當發出請求時,檢查表中是否存在令牌。如果沒有,那么您的用戶根本就沒有登錄。由于該表的輕量級特性,在響應時間方面不應察覺到查找。


查看完整回答
反對 回復 2021-12-24
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

您可以使用會話并檢查用戶擁有的當前會話數,如果大于 3,則拒絕登錄。

但是,如果您希望有一個生命周期限制,您可以為每個設備設置一個帶有 uuid 的 cookie,并且限制為 3,只是有一個非常長的 cookie 生命周期并在每次用戶登錄時重置生命周期。


查看完整回答
反對 回復 2021-12-24
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

要獲取MAC 地址,我們使用 exec() 函數。

$macAddr = exec('getmac');

為了獲取IP 地址,我們必須Illuminate\Http\Request;在控制器中包含 use ,然后添加以下 pre 標記的代碼。它將給出網絡的 AP 地址。

$ipAddr=\Request::ip();


查看完整回答
反對 回復 2021-12-24
  • 3 回答
  • 0 關注
  • 333 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號