programa Java para obtener la dirección MAC del sistema Windows o Linux Máquina

Obtener Dirección MAC del sistema de Linux o Windows de la máquina basada : Este programa leerá (GET) e imprimir la dirección MAC (dirección física) de las máquinas basadas en el sistema operativo Linux o Windows.

package com.includehelp;
import java.net.InetAddress;
import java.net.NetworkInterface;

public class SystemMacAddress {

public static String getSystemMac(){
try{
String OSName= System.getProperty("os.name");
if(OSName.contains("Windows")){
return (getMAC4Windows());
}
else{
String mac=getMAC4Linux("eth0");
if(mac==null){
mac=getMAC4Linux("eth1");
if(mac==null){
mac=getMAC4Linux("eth2");
if(mac==null){
mac=getMAC4Linux("usb0");
}
}
}
return mac;
}
}
catch(Exception E){
System.err.println("System Mac Exp : "+E.getMessage());
return null;
}
}

private static String getMAC4Linux(String name){
try {
NetworkInterface network = NetworkInterface.getByName(name);
byte[] mac = network.getHardwareAddress();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++){
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
return (sb.toString());
}
catch (Exception E) {
System.err.println("System Linux MAC Exp : "+E.getMessage());
return null;
}
}

private static String getMAC4Windows(){
try{
InetAddress addr =InetAddress.getLocalHost();
NetworkInterface network =NetworkInterface.getByInetAddress(addr);
byte[] mac = network.getHardwareAddress();
StringBuilder sb = new StringBuilder();
for(int i=0;i<mac.length;i++){
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
return sb.toString();
}
catch(Exception E){
System.err.println("System Windows MAC Exp : "+E.getMessage());
return null;
}
}
public static void main(String[] args) {
String macAddress = getSystemMac();
System.out.println("System Mac Address : "+macAddress);
}
}

salida

System Mac Address : 98-FA-A8-80-AF-01


Deja un comentario

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