我有一組PHP腳本坐在幾個客戶端服務器上,我想獲取該服務器的MAC地址,以便我可以存儲它並確定PHP腳本未在另一臺服務器上使用。如何確保PHP腳本僅由客戶端在一臺機器上使用?
如何獲取使用PHP的計算機的Mac地址?
有沒有更好的方法來確定PHP腳本是否在不同的機器上使用?
感謝所有
我有一組PHP腳本坐在幾個客戶端服務器上,我想獲取該服務器的MAC地址,以便我可以存儲它並確定PHP腳本未在另一臺服務器上使用。如何確保PHP腳本僅由客戶端在一臺機器上使用?
如何獲取使用PHP的計算機的Mac地址?
有沒有更好的方法來確定PHP腳本是否在不同的機器上使用?
感謝所有
我不認爲有一種簡單的方法可以從訪問PC獲取MAC地址,但我不確定這一點。
如何更簡單的方法:使用會話? 只要分配一個會話,如果沒有的話,你最終會得到一臺機器(除非他們使用不同的瀏覽器)。你可以鎖定執行。
它並不像「絕對安全」爲鎖定在Mac,但仍然很長的路要走......
直到你不要混淆代碼,智能客戶端可以僞造的MAC地址。
編輯:(只是一個簡單的想法)
當您安裝客戶機上的應用程序,你應該創建一個只屬於該機器的唯一標記。
例子:
合併這些散列它,保存它,然後檢查每一個頁面的電話。
了很久以前我用的工具PHTML編碼器(URL http://www.rssoftlab.com/)這個工具可以保護你PHP代碼,你可以設置一些功能,如「只能在這臺機器上運行」。你必須安裝這個php擴展。最終這是你的解決方案。
親切的問候
我想做到這一點的最好辦法是通過生成自己的算法指紋的服務器,這是用於創建指紋的代碼應該混淆,防止逆向工程,但它可以是可能的。
創建一個算法hasher,不會堅持每個指紋1值,讓值變化。
這樣你就可以ping主服務器哈希女巫然後得到驗證。
例如
function GenerateFingerPrint($account) //Each machine has a static UNIQUE ID
{
//Create a fingerprint for the machine and machines location
//Post the $account + $fingerprint to MAINSERVER.COM
// Get hashed responce
//Decode it and validate it to continue with script.
}
但所有的代碼應該因逆向工程高度混淆!
嗯,如果客戶端機器禁用該服務器的互聯網連接,該怎麼辦?腳本無法使用? – Abs 2010-08-24 10:01:22
好吧,你可以在本地存儲一個本地響應散列,這將有效7天,那麼它將需要重新驗證,如果沒有互聯網訪問它使用商店散列,否則它會每天更新X次。 HTTPS將是必需的! – RobertPitt 2010-08-24 10:05:29
如果你想獲得其運行你的PHP代碼,然後Web服務器的MAC地址:
system ('ipconfig /all')
在Windows和一般(取決於味道!)
system('netstat -i')
會你有很多網絡信息,包括mac地址。
但是我必須警告你,如果你停止你的腳本工作時的MAC地址不匹配你的客戶會恨你!
想到的情況下,當一個MAC地址更改以及如何申請新的「許可證」(不)適合於: -
如果'系統'被禁用會怎麼樣? – fabrik 2010-08-24 10:15:54
我認爲他的使用mac地址完全一樣..那裏只是不可靠和靜態是可行的。 – RobertPitt 2010-08-24 10:16:09
結構,那麼你要求用戶更新他的配置以滿足應用程序的需求,你無法滿足所有需求。 – RobertPitt 2010-08-24 10:16:52
我想說這個問題不是關於連接的HTTP客戶端的數量,而是強制實施單服務器許可證。 – Piskvor 2010-08-24 09:48:29
它不適用於訪問PC,其實際上適用於腳本駐留的PC。 – Abs 2010-08-24 09:50:53
猜猜我們是在同一時間輸入的。在這種情況下,您應該使用像Zend Safeguard或Nusphere Nucoder這樣的編碼器將腳本鎖定到單臺機器。 – Blizz 2010-08-24 09:53:51