sexta-feira, 3 de fevereiro de 2012

Capturando MAC no Java

O bloco de comandos abaixo serve para capturar o MAC da máquina onde o programa irá rodar, além do host e ip.




import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

public class TesteBoah {
    public static void main(String[] args) {
        try {
            InetAddress address = InetAddress.getLocalHost();
           
            System.out.println(address.
getHostAddress());
            System.out.println(address.getCanonicalHostName());
            System.out.println(address.getHostName());
           
            // InetAddress address = InetAddress.getByName("192.168.1.114");

            /*
             * Get NetworkInterface for the current host and then read the
             * hardware address.
             */
            NetworkInterface ni = NetworkInterface.getByInetAddress(address);
            if (ni != null) {
                byte[] mac = ni.getHardwareAddress();
                if (mac != null) {
                    /*
                     * Extract each array of mac address and convert it to hexa
                     * with the following format 08-00-27-DC-4A-9E.
                     */
                    for (int i = 0; i < mac.length; i++) {
                        System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
                    }
                } else {
                    System.out.println("Address doesn't exist or is not " + "accessible.");
                }
            } else {
                System.out.println("Network Interface for the specified " + "address is not found.");
            }
        } catch (UnknownHostException ex) {
            ex.printStackTrace();
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}

Nenhum comentário:

Postar um comentário