Package Java.net
Tout le monde doit savoir que les objets liés au réseau sont dans le package Java.net, et les classes du package Java Net sont les suivantes:
1. Obtenez l'objet hôte InetAddress
// Obtenez l'objet hôte local InetAddress host = InetAddress.getLocalHost (); // Obtenez l'objet hôte en fonction de l'adresse IP ou du nom d'hôte. Lors de l'obtention de l'hôte avec le nom d'hôte, une résolution DNS est requise. InetAddress host = InetAddress.getByName ("192.168.100.124"); InetAddress host = InetAddress.getByName (www.baidu.com);2. Obtenez l'adresse IP et le nom d'hôte de l'objet hôte (DNS est nécessaire pour résoudre le nom d'hôte)
host.GethostAddress (); host.GethostName ();
3. Obtenez toutes les interfaces de la machine et traversez-la
// Le type de données de retour est énumération Enventiment <NetworkInterface> enU = NetworkInterface.getNetWorkInterfaces (); while (enU.hasmoreElements) {NetworkInterface inEt = enU.Nexttelement (); String intname = inet.getName ();}Étant donné qu'il peut y avoir plusieurs sous-interfaces sur une interface (prenant en charge IP, telles que Eth0: 1), selon une certaine interface, vous pouvez obtenir l'ensemble d'énumération de toutes les adresses IP de l'interface (y compris les interfaces IPv4 et IPv6).
Énumération <netAddress> net_list = Inet.getinetAddress (); while (net_list.hasmoreElements) {InetAddress net = net_list.nextelement (); String ip = net.GethostAddress ();}Vous pouvez utiliser la méthode CollectionS.List () pour convertir le type d'énumération en structure de données de la collection ArrayList, puis utiliser le Traverser iTreator en Traverse.
Voici un moyen d'obtenir tous les noms d'interface du natif et de l'adresse IPv4 sur ces interfaces (pour Windows et Linux).
Importer java.net. *; Importer java.util. *; public class enumDemo {public static void main (String [] args) {try {// obtenir toutes les interfaces et les mettre dans la collection d'énumération, puis utiliser des collections.List () pour convertir la collection d'énumération en une collection ArrayList en énumération <WorkInterface> ENU = NetworkInterface.getNetworkInterfaces ();); ArrayList <NetworkInterface> Arr = CollectionS.List (ENU); for (iterator <workinterface> it = arr.iterator (); it.hasnext ();) {NetworkInterface ni = it.next (); String intname = ni.getName (); // Obtenez le nom de l'interface // Obtenez toutes les collections d'interface de réseau IP dans chaque interface, car il peut y avoir une sous-interface ArrayList <netAddress> inets = Collections.List (ni.getinetAddress ()); for (iterator <netAddress> it1 = isets.Itator (); it1.hasnext ();) {InetAddress Inet = it1.next (); // Filtrez uniquement les adresses IPv4, sinon l'adresse IPv6 sera obtenue en même temps if (instance inEtof Inet4Address) {String ip = Inet.GethostAddress (); System.out.printf ("% - 10s% -5s% -6s% -15s / n", "Inetfacename:", intname, "| ipv4:", ip); }}}}} catch (socketException s) {s.printStackTrace (); }}}Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.