各位,有谁做过在linux和unix下获取Mac地址方法,用java程序怎么写?
有经验的提供一点参考,谢谢!

解决方案 »

  1.   

    java是不分操作系统的,跨平台的!
    java可以取得mac地址的.就是用process流.import java.io.*;public class  GetMac
    {
        //通过IP获取网卡地址
            private String getMacAddressIP(String remotePcIP){
          String str="";
          String macAddress="";
          try {
               Process pp= Runtime.getRuntime().exec ("nbtstat -A " + remotePcIP);
               InputStreamReader ir = new InputStreamReader(pp.getInputStream());
               LineNumberReader input = new LineNumberReader (ir);
               for (int i = 1; i <100; i++)
                  {
                   str=input.readLine();
                   if (str!=null)
                     {
                       if(str.indexOf("MAC Address")>1)
                         { macAddress=str.substring(str.indexOf("MAC Address")+14,str.length());
                           break;
                        }
                     }
                  }
              }
          catch (IOException ex) {}
          return macAddress;
      }
      //通过机器名获取网卡地址
      private String getMacAddressName(String remotePcIP){
          String str="";
          String macAddress="";
          try {
               Process pp= Runtime.getRuntime().exec ("nbtstat -a " + remotePcIP);
               InputStreamReader ir = new InputStreamReader(pp.getInputStream());
               LineNumberReader input = new LineNumberReader (ir);
               for (int i = 1; i <100; i++)
                  {
                   str=input.readLine();
                   if (str!=null)
                     {
                       if(str.indexOf("MAC Address")>1)
                         { macAddress=str.substring(str.indexOf("MAC Address")+14,str.length());
                           break;
                        }
                     }
                  }
              }
          catch (IOException ex) {}
          return macAddress;
      }
            public static void main(String[] args)
            {
            GetMac getmac;
            getmac=new GetMac();
                    String mac="";
            mac=getmac.getMacAddressIP("10.67.0.6");
            System.out.println(mac);
            mac=getmac.getMacAddressName("gxy ");
            System.out.println(mac);
            }
    }
      

  2.   

    Sunny319(努力学习java中.) 命令还是有点问题的,我觉得应该是ifconfig eth0而不是netstat -A
    然后下面的str.indexOf("MAC Address")改成str.indexOf("HWaddr")
      

  3.   

    不错不错,谢谢楼上的良好建议!
    我是想把我的软件和用户的网卡绑定,这样用户就不会拿我的软件乱给别人免费用了,起到控制作用。
    这句话Process pp= Runtime.getRuntime().exec ("nbtstat -A " + remotePcIP);中的命令语句在任何平台下都能获取Mac地址么?其实我是想找个通用的命令而已,不然用户换了平台我监控不到Mac地址就完蛋了。
    不过楼上的我试一下,万分感谢!送分!