我实际上是在尝试在 IBMi 上运行 OrientDB(iSeries、AS/400、V540、JDK6-32 位最后应用的 CUM PTF)。OrientDB 早期所做的一件事(可以这么说)是尝试找到至少一个 mac 地址(不完全确定为什么我现在纯粹在本地嵌入模式下使用它)。我制作了自己的测试方法,结果相同:
LogIt.log(Level.INFO,"About to list mac addresses.");
final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
final byte[] mac = networkInterface.getHardwareAddress();
if (mac == null) {
LogIt.log(Level.INFO,"Mac address is null.");
continue;
} // if
String hex = Utils.convertBytesToHexString(mac);
LogIt.log(Level.INFO,"Mac address found {0}.",hex);
} // while
系统输出显示一条消息:
getkerninfo 1: A system call received a parameter that is not valid.
并且它无法使用调用 getHardwareAddress() 检索任何 mac 地址(实际上它返回 null 3 次)。我以“程序员”类型用户和安全官(如“root”)的身份运行它,结果相同。它在我的 Ubuntu 12.04 PC 和笔记本电脑上运行良好。
我想知道是否有其他人遇到过这个问题并找到了解决方案。