JAVA中怎么得到网卡的ID号。没有网卡时又会有什么错误。

解决方案 »

  1.   

    import java.io.*;
    class GetMAC{
     
     public static void main(String[] args)
     { 
      try{
      Process pro=Runtime.getRuntime().exec("cmd.exe /c ipconfig/all");
      
      InputStream is=pro.getInputStream();
      BufferedReader br=new BufferedReader(new InputStreamReader(is));
      String message=br.readLine();
      String mac="";
      int index=-1;
      while(message!=null)
      {
      if((index=message.indexOf("Physical Address"))>0)
            {
             mac=message.substring(index+36).trim();
             break;
             }
             message=br.readLine();
      }
      System.out.println(message);
      br.close();
      pro.destroy();
      }catch(IOException e)
      {
      System.out.println("Can't get mac address!");
      }
     }
    }
      

  2.   

    Linux版本(没有经过测试,不过差不多)
    import java.io.*;
    class GetMAC{public static void main(String[] args)
    {
    try{
    Process pro=Runtime.getRuntime().exec("ifconfig");InputStream is=pro.getInputStream();
    BufferedReader br=new BufferedReader(new InputStreamReader(is));
    String message=br.readLine();
    String mac="";
    int index=-1;
    while(message!=null)
    {
    if((index=message.indexOf("HWaddr"))>0)
    {
      String []tmps = message.split("HWaddr");
      mac = tmps[1];
      break;
    }
    message=br.readLine();
    }
    System.out.println(message);
    br.close();
    pro.destroy();
    }catch(IOException e)
    {
    System.out.println("Can't get mac address!");
    }
    }
    }
      

  3.   

    远程MAC地址是得不到的,最多得到局域网内的。因为在TCP/IP传输协议中,不传输远程MAC地址