我想限制我使用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库。此解决方案不依赖于计算机上的现有网络适配器。