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.9
com/javatutor/insel/net/LocalIpAddress.java
package com.javatutor.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: Realtek RTL8139-Familie-PCI-Fast Ethernet-NIC – Paketplaner-Miniport
CanonicalHostName: moe
IP: 192.168.2.135
Loopback? false
SiteLocal? true
|