产品出现问题我代码处理我们的许可服务无法找到主机MAC地址。我们不知道为什么会发生这种情况,而且只发生在很小比例的用户身上。
获取此MAC地址的方法是使用Java NetworkInterface方法。如果失败并返回NULL(或者用户JRE <1.6),我们就会回到使用Sigar来获取我们的地址。然而,似乎这也失败了。问题是它无法获取IP地址(然后进一步无法获取MAC地址)或者无法获取MAC。我们支持的所有操作系统(AIX,Solaris,Win7 / 8,Win Server,Linux和MAC)都会出现此问题。
因此,我首先想到的是这些用户正在启用Java安全管理器(因为这是一个常见因素),但是当我尝试重现它时,这看起来不太可能,因为这需要大量额外的配置步骤甚至让我们的产品运行的权限。因此,我们希望看到用户询问我们需要启用哪些软件来运行,但这不会发生。
因此我想知道导致失败的原因。我现在唯一的领导是它是低级别(在操作系统内)可以阻止Java本地获取此信息的尝试。我现在正在搜索这个问题,但搜索速度很慢而且很奇怪。
我的问题是,在上面列出的任何/部分平台上,这种行为是否可行(即禁止调用本机方法将网络信息发送到OS中可信代码以外的任何其他内容?)?
有没有人在使用Java NetworkInterface方法之前遇到过这个问题?