一个简单的程序,不知道可以不可以。。
<<
public class Test {
    public static void main(String[] args) {
        System.out.println("主机,告诉我MAC地址!");
        System.out.println("主机,告诉我CPU序列号!");
        System.out.println("主机,告诉我硬盘序列号!");
        System.out.println("不说的话拆了你丫的");
    }
}
>>

解决方案 »

  1.   

    用runtime然后自己解析,比如private String getMacAddress(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;
      }
      

  2.   


    /**
     * MacAddress.java.
     *
     */
    import java.io.*;/**
     *获得本机MAC地址.
     *
     *通过运行'ipconfig /all' Windows系统命令获得。
     */
    public  class  MacAddress
    {
      public static void main(String[] arg)
      {
        String macaddress ;
        MacAddress mac = new MacAddress();
        System.out.println(mac.getMac());
        
      }  
      
      /**
       *取得本机 MAC Address.
       */
      public static String getMac()
      {
        String mac;
        String netdata="";
        try
        {
          java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all");
          InputStream istr = proc.getInputStream();
          byte[] data = new byte[1024];
          istr.read(data);
          netdata = new String(data);     
        }
        catch(IOException e)
        {
          System.out.println("error="+e);
        }
        return mac = procAll(netdata);
      }
      
      /*
       *处理 ipconfig /all 返回的字符串.
       *@param str  'ipconfig /all' 返回的字符串
       */
      private static String procAll(String str)
      {
        return procStringEnd(procFirstMac(procAddress(str)));
      }
      
      /*
       *去掉 MAC Address 之前的字符.
       *@param str 'ipconfig /all' 返回的字符串
       */
      private static String procAddress(String str)
      {
        int indexof = str.indexOf("Physical Address");
        if(indexof>0)
        return str.substring(indexof,str.length());
        return str;
      }
      
      /*
       *获得 MAC Address 的开始位置.
       *@param str procAddress 返回的字符串
       */
      private static String procFirstMac(String str)
      {
        int indexof = str.indexOf(":");
        if(indexof>0)
        return str.substring(indexof+1,str.length()).trim();
        return str;
      }
      
      /*
       *获得 MAC Address 的结束位置.
       *@param str procFirstMac 返回的字符串
       */
      private static String procStringEnd(String str)
      {
        int indexof = str.indexOf("\r");
        if(indexof>0)
        return str.substring(0,indexof).trim();
        return str;
      }
    }
      

  3.   

    呵呵,见笑了。。其实是不知道有什么好方法能够做到
    MAC地址如你所言,俺也只想到解析别的命令输出结果
    不过对于不同的系统区别对待就是了。。比如windows用ipconfig /all。。
    而unix一般用ifconfig
      

  4.   

    其实只要知道具体的得到的命令,
    就可以利用在java中的runtime类来是实现执行后提取就是那!
      

  5.   

    << 
       CPU序列号、硬盘序列号呢?
    >>  
     
    这个看来可以用俺的方法了哈哈哈哈
      

  6.   

    xiaohaiz(城里的老土,两眼依然通红!) 
    你还真是搞笑哈