How to get a computer specific ID number using Java
Yes... You can get a computer specific ID number using Java You can use UUID of a system for specific ID of your computer.
To fetch UUID of your system by using java. Refer Following code:-
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);
}
But you can fetch only UUID of Windows system by using this code.
If you want to Fetch UUID of MAC os by using java. refer this code:
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);
}
Thank You.
Yes. You can do it without MAC address in both PC as well as linux systems.
I am going to break the process in steps.
Step1: Identify OS
In Your java code, identify the OS used like this
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
Step 2: use required commands to get the UUID of a system
What is a UUID?
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems.
For windows
Runtime.exec("wmic csproduct get UUID");
The cmd command wmic csproduct get UUID
returns the UUID of PC [windows]
For Linux
use this kernal command with Runtime.exec("YOUR COMMAND")
# cat /sys/class/dmi/id/product_uuid
To know more about Runtime.exec
check this java.lang.Runtime.exec
java.lang.Runtime.exec : Through this, you supply the appropriate shell command for any underlying Environment, whether be MAC, Windows, Linux etc.