Mithilfe der Klasse java.net.NetworkInterface ist es möglich plattformunabhängig Informationen der Netzwerkkarte auszulesen. Im folgenden Beispiel wird der Netzwerkadapter Name, so wie die dazu gehörige IP-Adresse ausgelesen. Die Ausgabe könnte zum beispiel diese sein:


Netzwerk-Interface: lo (Software Loopback Interface 1)
- 0:0:0:0:0:0:0:1
- 127.0.0.1

Hier nun der Code um die IP-adressen, so wie die Netzwerkadapter auszulesen.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tutorialnetwork;
 
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
 
/**
 *
 * @author li
 */
public class Main {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        showNIC();
    }
 
    /**
     * Gibt die Informationen über alle Netzwerkkarten aus
     *
     */
    public static void showNIC() {
        try {
            Enumeration<networkinterface> interfaceNIC = NetworkInterface.getNetworkInterfaces();
// Alle Schnittstellen durchlaufen
            while (interfaceNIC.hasMoreElements()) {
                //Elemente abfragen und ausgeben
                NetworkInterface n = interfaceNIC.nextElement();
                System.out.println(String.format("Netzwerk-Interface: %s (%s)", n.getName(), n.getDisplayName()));
// Adressen abrufen
                Enumeration<inetaddress> addresses = n.getInetAddresses();
// Adressen durchlaufen
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    System.out.println(String.format("- %s", address.getHostAddress()));
                }
                System.out.println();
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}
</inetaddress></networkinterface>