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>
2 Antworten für "Informationen der Netzwerkkarten auslesen"
Danke.
Genau das wonach ich gesucht hab.
Hallo sehr interessant,
habe den Code mal in mein Eclipse kopiert. Dabei ist mir folgender Fehler aufgefallen.
networkinterface wird Groß Geschrieben ist ja eine Klasse aus java.net.
also Enumeration anstatt Enumeration
das gleiche mit Enumeration
Grüßle Frank
Kommentar verfassen