相关疑难解决方法(0)

NetworkInterface.getNetworkInterfaces()未列出所有接口

(eth0,Loopback,wlan0)我的机器上有三个接口,我想使用Java-API来获取mac地址.

  • 我用这个代码.

    Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
        for (NetworkInterface netint : Collections.list(nets))
            displayInterfaceInformation(netint);
    }
    
    static void displayInterfaceInformation(NetworkInterface netint) 
      throws SocketException 
    {
        System.out.println("Display name: " 
           + netint.getDisplayName());
        System.out.println("Hardware address: " 
           + Arrays.toString(netint.getHardwareAddress()));
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 但那个代码打印wlan0,loopback,但错过了eth0.

  • 我的操作系统Ubuntu,任何帮助.

更新

  • o/p(strace -f java Networks 2>&1| grep ioctl).. 空白(空).

  • java -version

java版"1.7.0_21"Java(TM)SE运行时环境(版本1.7.0_21-b11)Java HotSpot(TM)64位服务器VM(版本23.21-b01,混合模式)

  • strace ifconfig 2>&1 | grep ioctl

ioctl(4, SIOCGIFCONF, {80, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"wlan0", {AF_INET, inet_addr("192.168.1.101")}}}}) = 0
ioctl(5, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_MULTICAST}) = 0
ioctl(5, SIOCGIFHWADDR, {ifr_name="eth0", …
Run Code Online (Sandbox Code Playgroud)

java

17
推荐指数
1
解决办法
9306
查看次数

标签 统计

java ×1