18.6 NetworkInterface 

Die Klasse java.net.NetworkInterface repräsentiert eine Netzwerkschnittstelle und mit ihr einen Namen und eine Reihe von IP-Adressen. Mit Hilfe der Klasse ist es möglich, alle IP-Adressen des lokalen Rechners auszulesen. Das folgende Beispiel soll die Methoden der Klasse demonstrieren:
Listing 18.10 com/tutego/insel/net/LocalIpAddress.java, main()
Enumeration<NetworkInterface> netInter = NetworkInterface.getNetworkInterfaces(); int n = 0; while ( netInter.hasMoreElements() ) { NetworkInterface ni = netInter.nextElement(); System.out.println( "NetworkInterface " + n++ + ": " + ni.getDisplayName() ); for ( InetAddress iaddress : Collections.list(ni.getInetAddresses()) ) { System.out.println( "CanonicalHostName: " + iaddress.getCanonicalHostName() ); System.out.println( "IP: " + iaddress.getHostAddress() ); System.out.println( "Loopback? " + iaddress.isLoopbackAddress() ); System.out.println( "SiteLocal? " + iaddress.isSiteLocalAddress() ); System.out.println(); } }
Auf meinem Rechner, der sich hinter einem Router befindet, ergibt sich:
NetworkInterface 0: MS TCP Loopback interface CanonicalHostName: localhost IP: 127.0.0.1 Loopback? true SiteLocal? false NetworkInterface 1: Intel(R) PRO/1000 PL Network Connection – Paketplaner-Miniport CanonicalHostName: dell IP: 192.168.2.138 Loopback? false SiteLocal? true