Captura de dados único do computador

Bom dia,

Gostaria de saber se tem algum dado da maquina que pode ser pego pelo o Java, um exemplo um ID da maquina, onde não se pode ter repetição desse dado na outra maquina, tipo o endereço IP, porém o IP pode ser alterado, gostaria algo fixo da maquina que pode ser pego pelo java, caso queira pegar o usuario da maquina se tiver em uma maquina local todos poderá acessar queria algo fixo, apenas a captura mesmo

3 opções:
MAC Address
CPU Serial Number
HDD Serial Number

MAC Address é o mais comum.

2 curtidas

public static void main(String[] args){

	InetAddress ip;
	try {
			
		ip = InetAddress.getLocalHost();
		System.out.println("Current IP address : " + ip.getHostAddress());
		
		NetworkInterface network = NetworkInterface.getByInetAddress(ip);
			
		byte[] mac = network.getHardwareAddress();
			
		System.out.print("Current MAC address : ");
			
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < mac.length; i++) {
			sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));		
		}
		System.out.println(sb.toString());
			
	} catch (UnknownHostException e) {
		
		e.printStackTrace();
		
	} catch (SocketException e){
			
		e.printStackTrace();
			
	}
	    
   }
1 curtida