Saltar al contenido

Cómo obtener un número de identificación específico de una computadora usando Java

Solución:

Si. Puede hacerlo sin dirección MAC tanto en PC como en sistemas Linux.

Voy a romper el proceso en pasos.
Paso 1: identificar el sistema operativo

En su código java, identifique el sistema operativo utilizado así

private static String OS = System.getProperty("os.name").toLowerCase();
if(OS.indexOf("win") >= 0)
//your code for windows OS.
else if(OS.indexOf("mac") >= 0)
//your code for MAC OS.
else if(OS.indexOf("sunos") >= 0)
//your code for Solaris OS
else if(OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 )
//your code for unix OS's

Paso 2: use los comandos necesarios para obtener el UUID de un sistema

¿Qué es un UUID?

Un identificador único universal (UUID) es un número de 128 bits que se utiliza para identificar información en los sistemas informáticos.

Para ventanas

Runtime.exec("wmic csproduct get UUID");

El comando cmd wmic csproduct get UUID devuelve el UUID de la PC [windows]

Para Linux

use este comando kernal con Runtime.exec("YOUR COMMAND")

# cat /sys/class/dmi/id/product_uuid

Para saber más sobre Runtime.exec verifique esto java.lang.Runtime.exec
java.lang.Runtime.exec: A través de esto, proporciona el comando de shell adecuado para cualquier entorno subyacente, ya sea MAC, Windows, Linux, etc.

Sí … Puede obtener un número de identificación específico de la computadora usando Java. Puede usar el UUID de un sistema para la identificación específica de su computadora.

Para obtener el UUID de su sistema mediante java. Consulte el siguiente código: –

    String command = "wmic csproduct get UUID";
    StringBuffer output = new StringBuffer();

    Process SerNumProcess = Runtime.getRuntime().exec(command);
    BufferedReader sNumReader = new BufferedReader(new InputStreamReader(SerNumProcess.getInputStream()));

    String line = "";
    while ((line = sNumReader.readLine()) != null) {
        output.append(line + "n");
    }
    String MachineID=output.toString().substring(output.indexOf("n"), output.length()).trim();;
    System.out.println(MachineID);

}

Pero solo puede obtener el UUID del sistema Windows utilizando este código.

Si desea obtener el UUID del sistema operativo MAC mediante java. refiera este código:

    String command = "system_profiler SPHardwareDataType | awk '/UUID/ { print $3; }'";

    StringBuffer output = new StringBuffer();


    Process SerNumProcess = Runtime.getRuntime().exec(command);

    BufferedReader sNumReader = new BufferedReader(new InputStreamReader(SerNumProcess.getInputStream()));

    String line = "";

    while ((line = sNumReader.readLine()) != null) {
        output.append(line + "n");
    }

    String MachineID=output.toString().substring(output.indexOf("UUID: "), output.length()).replace("UUID: ", "");

    SerNumProcess.waitFor();

    sNumReader.close();

    System.out.println(MachineID);
} 

Gracias.

Así, el UUID se puede recuperar como una cadena de acuerdo con la plataforma.

String OS = System.getProperty("os.name").toLowerCase();
    String machineId = null;
    if (OS.indexOf("win") >= 0) {
        StringBuffer output = new StringBuffer();
        Process process;
        String[] cmd = {"wmic", "csproduct", "get", "UUID"};  
        try {
            process = Runtime.getRuntime().exec(cmd);
            process.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line = "";
            while ((line = reader.readLine()) != null) {
                output.append(line + "n");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        machineId = output.toString();
    } else if (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0) {

        StringBuffer output = new StringBuffer();
        Process process;
        String[] cmd = {"/bin/sh", "-c", "echo <password for superuser> | sudo -S cat /sys/class/dmi/id/product_uuid"};
        try {
            process = Runtime.getRuntime().exec(cmd);
            process.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line = "";
            while ((line = reader.readLine()) != null) {
                output.append(line + "n");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        machineId = output.toString();
    }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *