如何在PHP中获取主机唯一ID?

时间:2009-11-07 15:10:38

标签: php

我需要想出一种独特识别计算机的方法。 类似于CPU的系统ID或信息,无法轻易入侵 在php应用程序运行时获取,然后通过Internet发送到中央数据库以激活或验证许可证密钥。

系统信息:

  • 网络共享主机或本地网络
  • Linux(可以是任何发行版)
  • 的Apache
  • PHP

预先感谢您的回复

4 个答案:

答案 0 :(得分:4)

没有“不能被黑”的东西。有很多方案可以强制执行此操作,但大多数方案会激怒合法客户,而不是停止非合法使用。 MAC地址应该是唯一的,但是大多数NIC允许它们很容易地重新配置,允许您的许可证密钥只需重新配置MAC就可以在任何其他计算机上使用(它必须简单地在其他计算机的子网之外,使用相同的MAC)。

如果你真的想继续,我建议你研究加密和数字签名,这可能会让你前进,但它很可能不会阻止坚定的黑客。即使您可以在系统中找到一些独特且无法更改的内容,您的php应用程序(操作系统或您正在使用的任何库)之间仍然存在层,或者可以替换为预定义的PHP代码本身数据与许可证密钥中的数据匹配。更不用说合法客户无法投资新硬件,将冗余系统作为备用,或者任何其他完全合法使用您的软件而不是特定系统。

在我看来,您最好的选择是相信您的客户不想非法操作。任何许可“强制执行”应仅仅是帮助您的客户更新其许可证,我个人也不认为过期的许可证应该停止您的软件操作,它可能会唠叨,但不能完全停止。只需使用您的私钥签署客户名称和到期日期即可。它仍然可以被复制,只要复制的系统使用相同的“客户名称”,但是再一次,他们仍然可以破解你的php文件而不显示它。

答案 1 :(得分:2)

为什么不使用网卡的MAC地址?它们假设是唯一的。

您可以使用here所述的技术获取MAC。

请记住,没有任何银弹:如果人们真的想要你(假设是服务器端软件),他们会得到它......这只是一个问题时间与努力。

答案 2 :(得分:2)

使用php exec命令运行命令以获取MAC地址

答案 3 :(得分:0)

我记得,有一家公司使用计算机编程语言完成了这样的壮举。似乎每个Windows安装在注册表中都有一个唯一标识所述安装的唯一键条目。他们的计划报告了这个关键但是,如果没有在最终用户计算机上安装这样的报告程序,则很难这样做。

除非你碰巧极具创造力并想出其他的东西,否则上面提到的你可以使用的唯一工具如下:

  • 会话
  • 曲奇
  • 用户名
  • 密码
  • 电子邮件地址
  • 问答
  • IP地址
  • 浏览器
  • 操作系统
  • Referer的
  • 浏览Habbits
  • 申请时间
  • 请求方法
  • 请求URI
  • 端口
  • 连接
  • 编码
  • 语言
  • http接受

好吧,我希望我把这一切都弄好了,并没有让自己成为一个傻瓜。

以上所述,涉及从用户计算机上读取内容,在用户计算机上放置内容,记录事件或三者的组合。为了绝对保证您是唯一识别用户,我建议使用以上所有内容。但是,什么时候足够了?

在尝试跟踪用户时,您真正需要关注的唯一事项如下:

  1. 用户详细信息是否会发生变化。
  2. Cookie是否会过期。
  3. 用户是否会删除Cookie。
  4. 用户是否会更改浏览器窗口以使会话静音。
  5. 当一个人失败时,其他人就会松弛,然后你可以修复伤害。