Maison > Java > javaDidacticiel > Comment obtenir de manière fiable l'adresse IP correcte en Java pour les systèmes distribués ?

Comment obtenir de manière fiable l'adresse IP correcte en Java pour les systèmes distribués ?

Patricia Arquette
Libérer: 2024-12-14 04:17:09
original
889 Les gens l'ont consulté

How to Reliably Get the Correct IP Address in Java for Distributed Systems?

Obtention de l'adresse IP de la machine actuelle à l'aide de Java

Lors du développement d'un système distribué avec plusieurs nœuds exécutés sur différents systèmes ou ports, il devient crucial pour obtenir l’adresse IP de la machine locale. Cependant, l'utilisation de Inet4Address.getLocalHost().getHostAddress() ou InetAddress.getLocalHost().getHostAddress() peut renvoyer une mauvaise adresse IP en raison de plusieurs interfaces réseau et adresses IP associées à chaque interface.

Considérations pour la sélection de l'adresse IP

Dans ce scénario, le nœud doit enregistrer son adresse IP auprès d'un processus d'amorçage nœud. La sélection de l'adresse IP doit respecter les priorités suivantes :

  1. Donner la priorité à l'adresse IP PPP si disponible.
  2. Si PPP n'est pas disponible, utilisez l'adresse IP LAN.
  3. En guise de solution de repli, enregistrez 127.0.0.1 si le nœud est supposé être sur le même ordinateur.

Utilisation des interfaces réseau

La méthode NetworkInterface.getNetworkInterfaces() fournit une liste complète des interfaces réseau sur la machine locale. Chaque interface réseau peut avoir plusieurs adresses IP. Pour obtenir toutes les adresses IP, parcourez les interfaces réseau et leurs adresses IP associées en utilisant le code suivant :

Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
    NetworkInterface n = (NetworkInterface) e.nextElement();
    Enumeration ee = n.getInetAddresses();
    while (ee.hasMoreElements()) {
        InetAddress i = (InetAddress) ee.nextElement();
        System.out.println(i.getHostAddress());
    }
}
Copier après la connexion

Distinguer les adresses IP

Une fois que vous avez la liste des adresses IP, il est essentiel de distinguer les différents types d'adresses IP adresses :

  • Bouclage : 127.xxx.xxx.xxx
  • Privé (Site Local) : 192.168.xxx.xxx, 10.xxx.xxx.xxx, 172.16.xxx.xxx à 172.31.xxx.xxx
  • Lien local : 169.254.xxx.xxx
  • Multidiffusion : 224.xxx.xxx.xxx vers 239.xxx.xxx.xxx
  • Diffusion : 255.255.255.255
  • Public point à point :Tout ce qui se trouve en dehors des plages ci-dessus

Vous pouvez utiliser l'API InetAddress pour vérifier types d'adresses IP spécifiques en fonction de vos priorités de sélection.

Conclusion

En utilisant l'API NetworkInterface et en considérant les types d'adresses IP, vous pouvez obtenir efficacement l'adresse IP correcte de votre nœud et enregistrez-le auprès du nœud d'amorçage, garantissant ainsi une bonne communication au sein du système distribué.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal