我在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:DD:DC for wlan0
问题,为什么?
编辑:很抱歉,当我运行ifconfig (不是iwconfig)时,它会响应:
wlan0链路附件:以太网HWaddr 00:25:D3:9C:广告:7A inet addr:192.168.50.100 Bcast:192.168.50.255掩码:255.255.255.0 inet6 addr: fe80:225:d3ff:fe9c:ad7a/64作用域:连接广播运行组播MTU:1500米:1个RX数据包:2417546错误:0丢弃:0帧:0 TX数据包:1608679错误:0丢弃:0重播:0载波:0碰撞:00 txqueuelen:1000RX字节:3099222889(3.0GB) TX字节:183978636 (183.9 MB)
所以没关系,还是谢谢你。
发布于 2012-09-08 15:52:11
试着运行以下代码:
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给出的地址。
https://stackoverflow.com/questions/12332048
复制相似问题