JAVA 获取电脑唯一标志方法教程

一、流程梳理

journey
    title 获取电脑唯一标志方法流程
    section 准备工作
        开发者准备相关环境和工具
    section 获取硬盘序列号
        开发者使用代码获取硬盘序列号
    section 获取CPU序列号
        开发者使用代码获取CPU序列号
    section 获取MAC地址
        开发者使用代码获取MAC地址
    section 拼接唯一标志
        开发者将硬盘序列号、CPU序列号、MAC地址拼接为唯一标志

二、具体步骤及代码实现

  1. 准备工作:确保已经导入相关的JAVA类库。

  2. 获取硬盘序列号

// 引用形式的描述信息:获取硬盘序列号
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public static String getHardDiskSerialNumber() {
    String result = "";
    File file = new File("C:");
    try {
        Process process = Runtime.getRuntime().exec("cmd /c dir " + file.getPath().substring(0, 2) + "/s");
        InputStream is = process.getInputStream();
        byte[] b = new byte[1024];
        while (is.read(b) != -1) {
            result += new String(b);
        }
        is.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return result;
}
  1. 获取CPU序列号
// 引用形式的描述信息:获取CPU序列号
import java.io.BufferedReader;
import java.io.InputStreamReader;

public static String getCPUSerialNumber() {
    String result = "";
    try {
        Process process = Runtime.getRuntime().exec(new String[]{"wmic", "cpu", "get", "ProcessorID"});
        process.getOutputStream().close();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            result += line;
        }
        bufferedReader.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return result;
}
  1. 获取MAC地址
// 引用形式的描述信息:获取MAC地址
import java.net.InetAddress;
import java.net.NetworkInterface;

public static String getMACAddress() {
    String result = "";
    try {
        InetAddress inetAddress = InetAddress.getLocalHost();
        NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
        byte[] mac = networkInterface.getHardwareAddress();
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < mac.length; i++) {
            stringBuilder.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
        }
        result = stringBuilder.toString();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
  1. 拼接唯一标志
// 引用形式的描述信息:拼接唯一标志
public static String getUniqueID() {
    String hardDiskSerialNumber = getHardDiskSerialNumber();
    String CPUSerialNumber = getCPUSerialNumber();
    String MACAddress = getMACAddress();
    return hardDiskSerialNumber + CPUSerialNumber + MACAddress;
}

结尾

通过以上步骤,你可以在JAVA中获取电脑的唯一标志,这对于软件授权验证等场景非常有用。希望以上内容能够帮助到你,如果有任何疑问,欢迎随时向我提问。祝你学习进步!