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.

 

 

3 thoughts 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 *