最近在做老系统的CS到BS的改造。碰到一个需要获取指定IP主机MAC地址的问题。实在没有想出什么好办法,只能通过DOS命令折中一下。坏处就是不能跨平台了,哪位大侠知道怎么做纯java的实现?一定指点我一下。
package com.dayang.utils;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
/**
* 网络工具
*
* @author relax
*/
public class NetworkUtil {
/**
* 根据指定IP获取MAC地址
* @param ip
* @return
*/
public static String getMACAddress(String ip) {
String str;
String macAddress = null;
try {
Process p = Runtime.getRuntime().exec("nbtstat -a " + ip);//执行DOS命令
InputStreamReader ir = new InputStreamReader(p.getInputStream());//获取返回结果的流
LineNumberReader input = new LineNumberReader(ir);
//查找Mac地址
for (int i = 1; i < 100; i++) {
str = input.readLine();
if (str != null) {
if (str.contains("MAC Address")) {
macAddress = str.substring(str.indexOf("= ")+2, str.length()).replace("-", "");
break;
}
}
}
ir.close();
} catch (IOException e) {
e.printStackTrace();
}
return macAddress;
}
public static void main(String args[]) {
System.err.println(getMACAddress("192.168.0.151"));
}
}