17.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 17.10 com/tutego/insel/net/LocalIpAddress.java
package com.tutego.insel.net;
import java.net.*;
import java.util.*;
public class LocalIpAddress
{
public static void main( String[] args ) throws SocketException
{
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



