2012-02-13 97 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次左右的请求。

你也可以尝试流行的免费增值模式。免费用户获得最低限度的功能,只有付费用户才能使用这些好东西。

但请记住,我不知道您提供哪种软件,所以也许这种解决方案也不适用。