segunda-feira, 18 de fevereiro de 2008

Como obter MAC, IP e nome da máquina.

Olá a todos!
Hoje trago para vocês uma classe que torna possível obter o endereço MAC, o IP e o nome da máquina!!
Aproveitem!


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

import javax.swing.JOptionPane;

/**
* @author Dalí Freire Dias
* @version 03/07/2007
*/
public class FacadeNet
{

public static String getMAC()
{
InetAddress localHost;
NetworkInterface networkInterface;
String mac = "";

try {

localHost = InetAddress.getLocalHost();
networkInterface = NetworkInterface.getByInetAddress( localHost );
mac = getString( networkInterface.getHardwareAddress() );

} catch( UnknownHostException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter endereço MAC!", "", JOptionPane.ERROR_MESSAGE );
} catch( SocketException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter endereço MAC!", "", JOptionPane.ERROR_MESSAGE );
} catch( Exception e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter endereço MAC!", "", JOptionPane.ERROR_MESSAGE );
}

return mac.toUpperCase();
}


public static String getIP()
{
InetAddress localHost;
String ip = "";

try {

localHost = InetAddress.getLocalHost();
ip = localHost.getHostAddress();

} catch( UnknownHostException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter IP!", "", JOptionPane.ERROR_MESSAGE );
} catch( Exception e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter IP!", "", JOptionPane.ERROR_MESSAGE );
}

return ip;
}


public static String getNomeDaMaquina()
{
InetAddress localHost;
String ip = "";

try {

localHost = InetAddress.getLocalHost();
ip = localHost.getHostName();

} catch( UnknownHostException e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter Nome da máquina!", "", JOptionPane.ERROR_MESSAGE );
} catch( Exception e ) {
e.printStackTrace();
JOptionPane.showMessageDialog( null, "Falha ao obter Nome da máquina!", "", JOptionPane.ERROR_MESSAGE );
}

return ip;
}


private static String getString( byte[] bytes )
{
StringBuilder s = new StringBuilder();
for( int i = 0; i < bytes.length; i++ ) {
int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
int parteBaixa = bytes[i] & 0xf;
if( parteAlta == 0 ) s.append( '0' );
s.append( Integer.toHexString( parteAlta | parteBaixa ) );
}
return s.toString();
}



/**
* @param args
*/
public static void main( String[] args )
{
JOptionPane.showMessageDialog( null, "Nome da máquina: " + getNomeDaMaquina() + "\nIP: " + getIP() + "\nMAC: " + getMAC() );
System.out.println( "Nome da máquina: " + getNomeDaMaquina() + "\nIP: " + getIP() + "\nMAC: " + getMAC() );

}

}

Nenhum comentário: