2015-07-20 178 views
0

我正在使用php,我想獲得系統的唯一ID。
由於所有機器都具有相同的本地IP地址(127.0.0.1),因此我無法使用$_SERVER['REMOTE_ADDR']。還有什麼我可以使用的?PHP - 獲取唯一的ID

+1

參見:http://stackoverflow.com/q/1846202/3933332 – Rizier123

+3

取決於你所說的「系統」,也有因使用也 – 2015-07-20 00:04:54

+0

@ Rizier123我不相信這就是許多可能的id他問 – 2015-07-20 00:05:32

回答

1

您將無法可靠地從最終用戶獲取MAC地址。您不能使用主機名稱,因爲所公開的主機名是基於IP地址的,並且它們都通過相同的IP進行連接。

我能想到的唯一的另一種方式是使用cookie或認證。如果他們通過身份驗證,那麼您使用他們的用戶ID。如果不是,那麼您可以使用唯一生成的ID設置長期Cookie。例如:

if (empty($_COOKIE['machine_id'])) { 
    $id = md5(uniqid(rand(), true)); 
    setcookie('machine_id', $id, time()+(3*365*86400)); 
} 

然後,這個客戶端需要一個唯一的標識符用於machine_id cookie中的未來連接。

這將取決於客戶端啓用cookie並且不清除他們的cookie。

+0

即時通訊甚至不清楚這是一個http連接,如果它不不期望cookie被傳遞。但是這可以起作用 - 如果你對遠程機器有100%的控制權(如果你確實有更好的方法)。但OP正在讓這個難以回答 - 所以祝你好運 – 2015-07-20 00:34:46