Originariamente inviato da Shork
Se mi faccio stampare a video il risultato del metodo getHardwareAddress() ottengo 2 valori uguali, rispettivamente [B@118278a e [B@13bdd36 (che razza di risultato è???)
Questo è il risultato della stampa di un reference nel caso in cui l'oggetto (ed è il caso degli array) non fornisca una implementazione di toString() che ritorna un qualcosa di più "human readable". E comunque mi sembra strano che hai questo output, visto che nel tuo codice non vedo il print di un reference.
Io comunque ho fatto una prova con questo codice che ho scritto:
codice:
import java.net.*;
import java.util.*;
public class NetworkInterfacesList
{
public static void main (String[] args)
{
try
{
Enumeration<NetworkInterface> enumInt = NetworkInterface.getNetworkInterfaces ();
while (enumInt.hasMoreElements ())
{
NetworkInterface netInt = enumInt.nextElement ();
System.out.println ("Interface: " + netInt.getDisplayName ().trim ());
byte[] hwaddr = netInt.getHardwareAddress ();
if (hwaddr != null)
{
System.out.print (" HW Addr: ");
for (int i = 0; i < hwaddr.length; i++)
System.out.format (i == 0 ? "%02X" : "-%02X", hwaddr[i]);
System.out.println ();
}
Enumeration<InetAddress> enumAddr = netInt.getInetAddresses ();
while (enumAddr.hasMoreElements ())
{
InetAddress addr = enumAddr.nextElement ();
System.out.println (" IP: " + addr);
}
}
}
catch (Exception e)
{
System.out.println (e);
}
}
}
Sul mio PC (Win2000) stampa:
codice:
Interface: MS TCP Loopback interface
IP: /127.0.0.1
Interface: NDIS 5.0 driver
HW Addr: 00-10-A7-13-73-02
IP: /192.168.1.75
IP: /192.168.1.73
IP: /192.168.1.74
Nota che ho una sola interfaccia fisica con IP ....73 e con 2 alias ...74 e ...75.