1

我有一组 PHP 脚本位于多个客户端服务器上,我想获取该服务器的 mac 地址,以便我可以存储它并确定 PHP 脚本没有在另一台服务器上使用。

如何以某种方式使用 PHP 获取计算机的 Mac 地址?

有没有更好的方法来确定 PHP 脚本是否正在另一台机器上使用?

谢谢大家

4

5 回答 5

2

除非您不混淆代码,否则智能客户端可以伪造他们的 mac 地址。

编辑:(只是一个简单的想法)

当您在客户端机器上安装应用程序时,您应该创建一个仅属于该机器的唯一令牌。

例子:

  • 文件创建时间戳
  • 安装时间戳
  • 文件位置(所有客户端的可能性很大)

合并这些,散列它,存储它,然后在每个页面调用时检查。

于 2010-08-24T09:45:58.317 回答
1

我认为没有一种简单的方法可以从访问的 PC 获取 MAC 地址,但我不确定。

一个更简单的方法怎么样:使用会话?如果没有会话,只需分配一个会话,您最终将在每台机器上分配一个会话(除非他们使用不同的浏览器)。您可以将执行锁定到那个。

它不像锁定 MAC 那样“完全安全”,但仍有很长的路要走……

于 2010-08-24T09:47:06.347 回答
1

如果你想获取运行你的 php 代码的 web 服务器的 mac 地址,那么:

system ('ipconfig /all') 

在窗户上,通常(取决于味道!)

system('netstat -i')

会给你一堆网络信息,包括mac地址。

但是我必须警告你,如果你在 mac 地址不匹配时停止脚本工作,你的客户会讨厌你!

考虑一下mac地址更改的情况以及申请新的“许可证”如何(不)适合:-

  • 坏网卡更换
  • 软件被转移到闪亮的新服务器上。
  • 系统管理员启动一个灵活的虚拟机集群。
  • 软件故障转移到集群中的另一台机器。
  • 客户找到更便宜/更好的托管服务提供商。
  • 灾难来袭,客户正试图在另一个数据中心的另一台机器上启动和运行。
  • 客户端机器有多个网卡。
于 2010-08-24T10:07:44.690 回答
0

很久以前我一直使用工具 PHTML Encoder (url http://www.rssoftlab.com/ ) 这个工具可以保护你的 php 代码,你可以设置一些功能,比如“只在这台机器上运行”。您必须将其安装为 php 扩展。最终,这是您的解决方案。

亲切的问候

于 2010-08-24T09:50:32.937 回答
0

我认为实现这一点的最佳方法是生成您自己的算法来对服务器进行指纹识别,用于创建指纹的代码应该被混淆以防止逆向工程,但这是可能的。

创建一个不坚持每个指纹 1 个值的算法哈希,让值变化。

这样您就可以 ping 主服务器,然后哈希女巫得到验证。

例如

function GenerateFingerPrint($account) //Each machine has a static UNIQUE ID
{
    //Create a fingerprint for the machine and machines location

    //Post the $account + $fingerprint to MAINSERVER.COM

    // Get hashed responce

    //Decode it and validate it to continue with script.
}

但是由于逆向工程,所有这些代码都应该被高度混淆!

于 2010-08-24T09:55:57.757 回答