16.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 16.11 LocalIpAddress.java
import java.net.*;
import java.util.*;
public class LocalIpAddress
{
public static void main( String args[] ) throws Exception
{
Enumeration netInter = NetworkInterface.getNetworkInterfaces();
int n = 0;
while ( netInter.hasMoreElements() )
{
NetworkInterface ni = (NetworkInterface) netInter.nextElement();
System.out.println( "NetworkInterface " + n++ + ": " + ni.getDisplayName() );
Enumeration addresses = ni.getInetAddresses();
while ( addresses.hasMoreElements() )
{
Object o = addresses.nextElement();
if ( o.getClass() == InetAddress.class ||
o.getClass() == Inet4Address.class ||
o.getClass() == Inet6Address.class )
{
InetAddress iaddress = (InetAddress) o;
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:
netInterface 0: Accton EN1207D-TX PCI-Fast Ethernet-Adapter
CanonicalHostName: homer
IP: 192.168.123.100
Loopback? false
SiteLocal? true
netInterface 1: MS TCP Loopback interface
CanonicalHostName: localhost
IP: 127.0.0.1
Loopback? true
SiteLocal? false
|