当前位置: 代码迷 >> J2SE >> java socket编程中如何获得本机mac
  详细解决方案

java socket编程中如何获得本机mac

热度:263   发布时间:2016-04-23 20:16:56.0
java socket编程中怎么获得本机mac
通过socket.getInetAddress()能得到ip地址,用cmd匹配获取,中文有问题,求大神解惑
------解决思路----------------------
干嘛要本机MAC啊?只能用RAW socket了。
------解决思路----------------------
还有一个手段么,就是通过  Runtime命令来调 ifconfig 或ipconfig 命令,从命令行的输出里分析得到MAC地址 。。。
------解决思路----------------------
runtime 的exec方法么?
------解决思路----------------------
直接给出代码,略作修改就可以根据InetAddress获取MAC地址
package learning;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

public class SocketMac {

public static void main(String[] args) {
try {
InetAddress adress = InetAddress.getLocalHost();
NetworkInterface net = NetworkInterface.getByInetAddress(adress);
byte[] macBytes = net.getHardwareAddress();
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < macBytes.length; i++){
if(i != 0)
buffer.append("-");
String str = Integer.toHexString(macBytes[i]&0xff);
if(str.length() == 0){
buffer.append("0");
}
buffer.append(str);
}
System.out.println(buffer.toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
}
}

}
  相关解决方案