如何限制我的exe只能安装在特定的计算机上?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何限制我的exe只能安装在特定的计算机上?相关的知识,希望对你有一定的参考价值。

我想限制我使用launch4j进行的设置只能安装在特定的计算机上。具体来说,我想获取计算机的MAC地址并检查它是否是该特定计算机,然后允许它安装设置(或运行exe)。

我在网上搜索它,但我找不到任何解决方案

郎:java IDE:NetBeans 可执行文件使用:Launch4j 安装程序安装程序由Inno Setup Compiler制作

答案

计算机可能没有网卡或有许多网卡因此使基于MAC地址的识别容易出错。

检索计算机上的网络接口的MAC地址

Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();

while (networkInterfaces.hasMoreElements()) {
    NetworkInterface networkInterface = networkInterfaces.nextElement();

    System.out.println(networkInterface.getName() + " " +
        networkInterface.getDisplayName());
}

通过散列MAC的串联字符串可以减轻许多MAC地址的问题。但是仍然存在没有现有MAC地址的问题。


唯一识别计算机的另一种可能性是对其中的一些内部规范进行散列,例如处理器序列号,处理器标识符,操作系统等。例如,通过使用跨平台的OSHI库。此解决方案不依赖于计算机上的现有网络适配器。

以上是关于如何限制我的exe只能安装在特定的计算机上?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复仅在一台计算机上运行的 Exe 文件

在其他计算机上运行 Allegro 5

如何使用 psexec 向远程计算机上启动的 cmd.exe 提供多个命令

如何在任何 Windows 计算机上运行 .exe 文件?

将Java项目转换为.Exe

如何在不同的计算机上打开导出的.exe Jar文件或RUN.bat文件?