2012-02-13 31 views
1

如何使用PHP來唯一標識單獨的機器。我想使用MAC地址,但顯然你不能。我可以使用$_SERVER['REMOTE_ADDR'],但IP地址會改變(不是嗎?)。此外,該頁面不會被瀏覽器訪問,但使用程序下載,所以我不相信我可以設置Cookie。唯一標識單獨的機器(PHP)

這樣做的目的是爲了防止我的共享軟件桌面應用程序軟件的用戶在每臺機器上使用超出試用限制的程序(這可以通過刪除註冊表項來完成) - 所以我希望每個新安裝都要註冊帶有mySQL數據庫的雲將確認該機器是否以前沒有在試用期後註冊過。

有什麼想法?

+0

因此,您的用戶將在其計算機上的服務器上運行應用程序? – 2012-02-13 18:32:55

+0

很難從有限的信息中分辨出來,但是也許你應該實現一次性使用鏈接,指向一次下載後過期的資源。 – 2012-02-13 18:37:50

+0

對不起,程序在用戶的計算機上運行(可以離線使用)。當程序正在安裝時,它會向包含GET []變量的服務器上的PHP腳本發出HTTP請求,然後將這些變量與IP地址和當前時間等信息一起添加到我的數據庫中。我想添加一個變量,如果他們再次訪問安裝該程序,可以再次識別它們。 – 2012-02-13 18:40:16

回答

0

那麼它是在安裝程序中,你應該擔心獲得一個值傳遞給PHP,而不是在PHP腳本。考慮詢問如何從安裝程序獲取MAC地址 - Xeon06

1

我相信你應該嘗試一種不同的方法。

IP無法幫助您識別機器。試想一下,我家有無線接入點,所有連接到互聯網的設備都有相同的IP地址。或者在我的公司我們使用代理服務器,我的PC通過交換兩個不同的IP來發出請求。

一些軟件公司通過強制客戶端安裝硬件卡來解決這個問題,該硬件卡充當在特定PC中解鎖應用程序的鑰匙,但這種sotfware許可證的費用爲4位或更多。這是一個糟糕的用戶體驗。試想一下,每次重新安裝操作系統或不同的硬件部件時,您都必須從頭開始解鎖過程(通常需要打電話給公司的支持中心)。

也許你可以嘗試雙因素身份驗證,通過請求分開用戶名,通過短信發送給每個用戶的唯一電話號碼的一次性密碼。並限制每個電話號碼每小時5次和每天10次左右的請求。

你也可以嘗試流行的免費增值模式。免費用戶獲得最低限度的功能,只有付費用戶才能使用這些好東西。

但請記住,我不知道您提供哪種軟件,所以也許這種解決方案也不適用。