Obtener MAC de la PC con JAVA.

macBuenos días, hace un tiempo me hizo falta saber como obtener la mac de la pc en JAVA y despues de andar buscando por la red encontre código aquí y código allá que em ayudo a construir esta clase para obtener dicha mac. Espero les sea útiles en sus aplicaciones.

 

 

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.UnknownHostException;
import java.util.StringTokenizer;

/**
*
* @author Darkwin
*/
public class MAIN {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
Mac m = new Mac();
System.out.println(m.getMacAddress());
}

public static class Mac {

//OBTENER MAC DE LA PC
public String getMacAddress() throws IOException {
String os = System.getProperty(“os.name”);
if (os.startsWith(“Windows”)) {
return WindowParserMac(windowsRunIpConfigCommand());
} else if (os.startsWith(“Linux”)) {
return linuxParseMacAddress(linuxRunIfConfigCommand());
} else {
throw new IOException(“Sistema operativo desconocido: ” + os);
}
}

private final static String linuxParseMacAddress(String ipConfigResponse) {
StringTokenizer tokenizer = new StringTokenizer(ipConfigResponse, “\n”);
String line = null;
String[] lastline = null;

while (tokenizer.hasMoreTokens()) {
line = tokenizer.nextToken().trim();
if (line.contains(“HWaddr”)) {
lastline = line.split(“HWaddr”);
String[] tmp = lastline[1].trim().split(“:”);
if (lastline[1].trim().length() == 17 && tmp.length == 6) {
return lastline[1];
}
}
}
return “MAC no Válida”;
}

private final static String linuxRunIfConfigCommand() throws IOException {
Process p = Runtime.getRuntime().exec(“ifconfig”);
InputStream stdoutStream = new BufferedInputStream(p.getInputStream());

StringBuffer buffer = new StringBuffer();
for (;;) {
int c = stdoutStream.read();
if (c == -1) {
break;
}
buffer.append((char) c);
}
String outputText = buffer.toString();

stdoutStream.close();

return outputText;
}

//WINDOWS—————————————————————————–
private final static String windowsRunIpConfigCommand() throws IOException {
Process p = Runtime.getRuntime().exec(“ipconfig /all”);
InputStream stdoutStream = new BufferedInputStream(p.getInputStream());
StringBuffer buffer = new StringBuffer();
for (;;) {
int c = stdoutStream.read();
if (c == -1) {
break;
}
buffer.append((char) c);
}
String outputText = buffer.toString();
stdoutStream.close();
return outputText;
}

public final static String WindowParserMac(String ipConfigResponse) throws UnknownHostException {

StringTokenizer tokenizer = new StringTokenizer(ipConfigResponse, “\n”);
String line = null;
String[] lastline = null;
while (tokenizer.hasMoreTokens()) {
line = tokenizer.nextToken().trim();
if (line.contains(“-“)) {
lastline = line.split(“:”);
String[] tmp = lastline[1].trim().split(“-“);
if (lastline[1].trim().length() == 17 && tmp.length == 6) {
return lastline[1];
}
}
}
return “MAC no Válida”;
}
}
}

No se olviden de comentar si  les fue de ayuda.

 

 

One thought on “Obtener MAC de la PC con JAVA.

Deja un comentario

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