2015-07-20 129 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