java mac地址与iwconfig不同

时间:2012-09-08 15:32:52

标签: java

我在java中有读取MAC地址的功能:

    for(Enumeration<NetworkInterface> enm = NetworkInterface.getNetworkInterfaces(); enm.hasMoreElements();){
        NetworkInterface network = (NetworkInterface) enm.nextElement();
          if(null != network.getHardwareAddress()){
              System.out.print(network.getDisplayName());
              byte[] mac = network.getHardwareAddress();
              StringBuilder sb = new StringBuilder(18);
              for (byte b : mac) {
                  if (sb.length() > 0)
                      sb.append(':');
                  sb.append(String.format("%02x", b & 0xff));
              }                  

              System.out.print(sb.toString());
              return null; 
          }
       }

这个结果: wlan0:00:25:d3:9c:ad:7a 但当我这样做:iwconfig时,我表示:00:0D:F3:0D:DD:DC for wlan0

问题,为什么?

编辑: 对不起,我很抱歉 当我运行ifconfig(而不是iwconfig)时,它会响应:

  

wlan0链接封装:以太网HWaddr 00:25:d3:9c:ad:7a
            inet addr:192.168.50.100 Bcast:192.168.50.255掩码:255.255.255.0             inet6 addr:fe80 :: 225:d3ff:fe9c:ad7a / 64范围:链接             UP BROADCAST RUNNING MULTICAST MTU:1500公制:1             RX数据包:2417546错误:0丢弃:0超限:0帧:0             TX数据包:1608679错误:0丢弃:0溢出:0载波:0             碰撞:0 txqueuelen:1000             RX字节:3099222889(3.0 GB)TX字节:183978636(183.9 MB)

所以没关系,谢谢你。

1 个答案:

答案 0 :(得分:0)

尝试运行此代码:

    for (Enumeration<NetworkInterface> enm = NetworkInterface
            .getNetworkInterfaces(); enm.hasMoreElements();) {
        NetworkInterface network = (NetworkInterface) enm.nextElement();
        if (null != network.getHardwareAddress()) {
            System.out.print(network.getDisplayName() + " is ");
            byte[] mac = network.getHardwareAddress();
            StringBuilder sb = new StringBuilder(18);
            for (byte b : mac) {
                if (sb.length() > 0)
                    sb.append(':');
                sb.append(String.format("%02x", b & 0xff));
            }

            System.out.println(sb.toString());
        }
    }

这将打印出所有网络接口的名称/ mac地址,旧代码只是第一个。查看这些mac地址中是否有任何一个与iwconfig

给出的地址匹配