【问题标题】:java mac address different than iwconfigjava mac地址与iwconfig不同
【发布时间】:2012-09-08 15:32:51
【问题描述】:

我有在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 地址:192.168.50.100 广播:192.168.50.255 掩码:255.255.255.0 inet6 地址:fe80::225:d3ff:fe9c:ad7a/64 范围:链接 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: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)

所以没关系,还是谢谢你。

【问题讨论】:

  • 一个是AzureWave based product,一个是Asmax based product,所以看起来是两种不同的无线网卡。您确定在执行 Java 程序的同一台机器上运行 iwconfig 吗?
  • 是的,我确定它是一台机器:)

标签: java


【解决方案1】:

尝试运行此代码:

    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 给出的匹配

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多