1. 程式人生 > >JAVA 如何通過IP地址獲得MAC地址

JAVA 如何通過IP地址獲得MAC地址

主要的思路

  • 通過Runtime.getRutime().exec("nbtstat -A "+ip),在單獨的程序中執行指定的字串命令。這裡通過 nbtstat - A ip命令獲取遠端終端的MAC地址在cmd下執行如下圖:

  • 讀取程序的輸入流
  • 初始化MAC地址為“”
  • 將所有的字母轉化成大寫
  • 查詢 MAC ADDRESS的位置,若找到了MAC ADDRESS,則表明有MAC地址,再查詢“=”的位置,“=”後面就是MAC地址了
  • 若沒有MAC ADDRESS,MAC地址為“”

以下是程式碼:

public static String getMacByIp(String IP){

    String MAC="";

    try{
        Process process =Runtime.getRuntime().exec("nbtstat -A "+IP);
        InputStreamReader inputStreamReader =new InputStreamReader(process.getInputStream);
        LineNumberReader lineNumberReader = new LineNumberReader(inputStreamReader);
        String string="";
        while((string = lineNumberReader.readLine()) !=null){
            string = string.toUpperCase();
            if(string.indexOf("MAC ADDRESS")>1){
                int start = string.indexOf("=");
                MAC=string.substring(start+1,string.length()).trim();
                break;
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return MAC;
}