Ola pessoal, to quebrando cabeça aqui para descobrir como que pego o endereço mac de uma maquina no java. Estou utilizando java desktop. São 3 da manha aqui em brasilia e eu to quebrando cabeça com isso, ja pesquisei em varios sites, na maioria eles dao este codigo aqui:
package com.mkyong;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
public class app{
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();
}
}
}
Porem sempre da este mesmo erro em todas as classes:
Exception in thread "main" java.lang.NullPointerException
at teste.tata.main(tata.java:20)
O erro é nessa linha:
byte[] mac = network.getHardwareAddress();
Não sei mais o que faço, espero que me ajudem, bom, vou dormir um pouquinho ali pq ja to que nem um zumbi aqui, vlw
eu não sei o quê você está fazendo de errado, mas eu consegui executar o seu código (no windows). No linux, provavelmente irá funcionar também, visto que o código utiliza API do Java, nada feito na mão por terceiro.
Ola newbcc, testei aqui numa maquina windows e funcionou perfeitinho, a respeito das classes que vc citou, desculpa eu coloquei o exemplo da internet e na hora dos erros eu coloquei o meu exemplo modificado, kkkkkkk, ai ficou com classes diferentes. Bom, depois de arrumar tudo, fiz o teste no windows, funcionou perfeitamente, porem, no linux deu problema. ele mer retorna um ip do localhost: 127.0.1.1 e ocorreu um java.lang.nullPointerException na hora de puxar o mac. Estou desconfiado que o problema é que esta maquina linux é o servidor do apache e do banco, ai ele nao consegue puxar o ip certo, como ele precisa do ip para puxar o mac, entao ele nao consegue entendeu. No windows ele puxa o ip certo: 192.168.10.5 e o mac vem certinho tambem. Se alguem tiver alguma dica de como puxar o ip real da maquina, independente que tenho local host ou nao, por favor, me ajudem.