Java.net Paket
Jeder sollte wissen, dass sich die netzwerkbezogenen Objekte im Java.net-Paket befinden, und die Klassen unter dem Java Net-Paket sind wie folgt:
1. Holen Sie sich das Host -Objekt inetaddress
// Holen Sie sich das lokale Host -Objekt inetaddress host = inetaddress.getLocalHost (); // Erhalten Sie das Host -Objekt basierend auf der IP -Adresse oder dem Hostnamen. Bei der Erlangung des Hosts mit dem Hostnamen ist eine DNS -Auflösung erforderlich. Inetaddress host = inetaddress.getbyname ("192.168.100.124"); Inetaddress host = inetaddress.getbyname (www.baidu.com);2. Erhalten Sie die IP -Adresse und den Hostnamen des Host -Objekts (DNS ist erforderlich, um den Hostnamen aufzulösen).
Host.GethostadDress (); Host.Gethostname ();
3. Holen Sie sich alle Schnittstellen der Maschine und durchqueren Sie sie
// Datentyp zurückgeben ist EnumerationEnumeration <NetworkInterface> enu = networkInterface.getNetworkInterfaces (); while (enu.hasmoreElements) {networkInterface inet = enu.nextElement (); String intname = inet.getName ();}Da eine Schnittstelle (unterstützende IP, wie ETH0: 1), gemäß einer bestimmten Schnittstelle mehrere Subinterfaces vorhanden sein kann, können Sie den Aufzählungssatz aller IP-Adressen der Schnittstelle (einschließlich IPv4- und IPv6-Schnittstellen) erhalten.
Enumeration <InetAddress> net_list = inet.getInetadDresse (); while (net_list.hasmoreElements) {inetaddress net = net_list.nextElement (); String ip = net.gethostAddress ();}Sie können die Methode Collections.list () verwenden, um den Aufzählungstyp in die Datenstruktur der ArrayList -Sammlung umzuwandeln und dann den Itröstor Traverser zum Durchqueren zu verwenden.
Hier finden Sie eine Möglichkeit, alle Schnittstellennamen des nativen und der IPv4 -Adresse auf diesen Schnittstellen (für Windows und Linux) zu erhalten.
Importieren Sie Java.net. ArrayList <NetworkInterface> arr = collections.list (ENU); für (Iterator <NetworkInterface> iT = arr.Iderator (); it.hasNext ();) {networkInterface ni = it.Next (); String intname = ni.getName (); // den Schnittstellennamen abrufen // Alle IP-Netzwerk-Schnittstellenkollektionen in jeder Schnittstelle abrufen, da es möglicherweise eine subübergreifende ArrayList <InetAddress> iNETS = Collections.List (Ni.getInetadDresse ()) gibt; für (iterator <inetaddress> it1 = inets.iterator (); it1.hasnext ();) {inetaddress inet = it1.next (); // Nur IPv4 -Adressen filtern, andernfalls wird die IPv6 -Adresse gleichzeitig erhalten, wenn (inetinstance von inet4Address) {String ip = inet.GethostAdDress (); System.out.printf (" %-10s %-5s %-6s %-15s/n", "inetfaceName:", intname, "| ipv4:", ip); }}}}} catch (socketException s) {s.printstacktrace (); }}}Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.