【发布时间】: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