4

我实际上是在尝试在 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 和笔记本电脑上运行良好。

我想知道是否有其他人遇到过这个问题并找到了解决方案。

4

1 回答 1

1

由于 getkerninfo() 是 Unix/Linux 上通常未记录的 C 系统调用,您是否在 iSeries 上的 PASE 中运行它?我首先怀疑这是唯一可能取得成功的环境。否则,似乎需要一个 Linux 分区。

于 2014-03-17T01:41:33.813 回答