Para obter o nome, IP e endereço físico (MAC Address) de todas as interfaces de rede disponíveis no computador use o código abaixo como exemplo:
{code}
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
/**
*
* @author Fernando Bryan Frizzarin
*/
public class PegaIP {
public static void main(String[] args) {
String ip;
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
// Objeto para as interfaces de rede
NetworkInterface iface = interfaces.nextElement();
// Não mostra endereços de loopback
if (iface.isLoopback() || !iface.isUp())
continue;
Enumeration<InetAddress> addresses = iface.getInetAddresses();
while(addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
// Pega IP
ip = addr.getHostAddress();
// Pega MAC
byte[] mac = iface.getHardwareAddress();
String s="";
// Mostra MAC formatado
for (int i = 0; i < mac.length; i++) {
s += String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
}
// Mostra tudo
System.out.println(iface.getDisplayName() + "\n" +
s + " - " +
ip);
}
}
} catch (SocketException e) {
throw new RuntimeException(e);
}
}
}
{/code}