码迷,mamicode.com
首页 > 编程语言 > 详细

java获取硬盘ID以及MAC地址

时间:2016-05-02 15:30:57      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

http://blog.csdn.net/coolwzjcool/article/details/6698327 为了达到软件注册,或者说软件和电脑绑定的目的,需要将电脑上的固定编号进行一系列的算法计算,并生成唯一和软件匹配的号码。 那么使用java如何达到这个目的呢? 通常做法都是通过java的Runtime来完成,通过 process的输入流,进行获取相关的信息。 下面列举具体的例子: 1、DiskUtils 获取硬盘编号 import java.io.File; import java.io.FileWriter; import java.io.BufferedReader; import java.io.InputStreamReader; class DiskUtils { private DiskUtils() { } public static String getSerialNumber(String drive) { String result = ""; try { File file = File.createTempFile("damn", ".vbs"); file.deleteOnExit(); FileWriter fw = new java.io.FileWriter(file); String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n" + "Set colDrives = objFSO.Drives\n" + "Set objDrive = colDrives.item(\"" + drive + "\")\n" + "Wscript.Echo objDrive.SerialNumber"; // see note fw.write(vbs); fw.close(); Process p = Runtime.getRuntime().exec( "cscript //NoLogo " + file.getPath()); BufferedReader input = new BufferedReader(new InputStreamReader( p.getInputStream())); String line; while ((line = input.readLine()) != null) { result += line; } input.close(); } catch (Exception e) { e.printStackTrace(); } return result.trim(); } } 2、MacUtils 获取MAC地址 import java.io.InputStreamReader; import java.io.LineNumberReader; public class MacUtils { public static void getMac(){ try { Process process = Runtime.getRuntime().exec("ipconfig /all"); InputStreamReader ir = new InputStreamReader(process.getInputStream()); LineNumberReader input = new LineNumberReader(ir); String line; while ((line = input.readLine()) != null) if (line.indexOf("Physical Address") > 0) { String MACAddr = line.substring(line.indexOf("-") - 2); System.out.println("MAC address = [" + MACAddr + "]"); } } catch (java.io.IOException e) { System.err.println("IOException " + e.getMessage()); } } } 3、 测试程序: import java.io.InputStreamReader; import java.io.LineNumberReader; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import java.util.Vector; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //****************获取MAC地址*****************// System.out.println("***MAC地址***"); MacUtils.getMac(); //****************获取硬盘ID*****************// String sn = DiskUtils.getSerialNumber("C"); System.out.println("***硬盘编号***"); System.out.println(sn); } }

java获取硬盘ID以及MAC地址

标签:

原文地址:http://www.cnblogs.com/donaldlee2008/p/5452338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!