我有一组PHP脚本位于多个客户端服务器上,我想获取该服务器的mac地址,以便我可以存储它并确定PHP脚本没有在另一台服务器上使用。
如何以某种方式使用PHP获取计算机的Mac地址?
有没有更好的方法来确定PHP脚本是否在其他计算机上使用?
全部谢谢
答案 0 :(得分:2)
在您不对代码进行模糊处理之前,智能客户端可以伪造其mac地址。
编辑:(只是一个简单的想法)
当您在客户端的计算机上安装应用程序时,您应该创建一个仅属于该计算机的唯一令牌。
示例:
合并这些,哈希,存储,然后检查每次页面调用。
答案 1 :(得分:1)
我认为从访问的PC上获取MAC地址并不容易,但我不确定。
如何更简单的方法:使用会话? 只要分配一个会话,如果没有,你最终会得到一台机器(除非他们使用不同的浏览器)。你可以把执行锁定到那个。
它不像锁定MAC一样“完全安全”,但仍然有很长的路要走......
答案 2 :(得分:1)
如果你想得到运行你的php代码的web服务器的mac地址,那么:
system ('ipconfig /all')
在窗户上,通常(取决于味道!)
system('netstat -i')
将为您提供一系列网络信息,包括mac地址。
但是我必须警告你,如果你的mac脚本与你的客户不匹配就停止你的脚本工作会讨厌你!
考虑一下mac地址发生变化的情况以及申请新“许可证”的情况如何(不适合): -
答案 3 :(得分:0)
很久以前我使用过工具PHTML Encoder(url http://www.rssoftlab.com/)这个工具可以保护你的php代码,你可以设置一些功能,比如“只能在这台机器上运行”。你必须安装这个PHP扩展。最终这是一个解决方案。
亲切的问候
答案 4 :(得分: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.
}
但是由于逆向工程,所有代码都应该高度混淆!