Maison >Java >javaDidacticiel >Comment obtenir la bonne adresse IP de votre machine Java ?

Comment obtenir la bonne adresse IP de votre machine Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-23 03:09:17253parcourir

How to Get the Correct IP Address of Your Java Machine?

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

Dans les systèmes distribués, les nœuds communiquent souvent entre eux en utilisant leurs adresses IP. Cependant, obtenir l'adresse IP correcte pour la machine actuelle peut être difficile en raison de la possibilité de plusieurs interfaces réseau et de différents types d'adresses IP.

Détermination de l'adresse IP appropriée

Par défaut, InetAddress.getLocalHost() renvoie l'adresse IP de la première interface réseau active. Cependant, ce n'est peut-être pas l'adresse souhaitée dans tous les cas, en particulier lorsqu'une adresse IP spécifique est requise, telle que l'adresse IP PPP ou l'adresse IP LAN.

Itération sur les interfaces réseau

Une approche consiste à utiliser NetworkInterface.getNetworkInterfaces() pour obtenir toutes les interfaces réseau de la machine. Chaque interface peut ensuite être vérifiée pour les adresses IP disponibles à l'aide de getInetAddresses(). En parcourant toutes les adresses IP disponibles, le type d'adresse IP souhaité (par exemple, PPP, LAN) peut être identifié.

Exemple de code

L'extrait de code suivant montre comment parcourir les interfaces réseau et afficher les adresses IP associées à chacune interface :

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());
  }
}

Distinguer les adresses IP

Une fois les adresses IP obtenues, leur distinction peut se faire en vérifiant leur type. Adresses de bouclage (127.0.0.1), adresses privées (locales du site) (192.168.x.x, 10.x.x.x, 172.16.x.x), adresses de liaison locales (169.254.x.x), adresses de multidiffusion (224.x.x.x) et adresses de diffusion (255.255 .255.255) peuvent être identifiés à l'aide des méthodes fournies par InetAddress API.

Choisir la bonne adresse IP

Les critères spécifiques pour choisir la bonne adresse IP varient en fonction des exigences de l'application. En général, les étapes suivantes peuvent être envisagées :

  1. Vérifiez une adresse IP accessible publiquement (pas de bouclage, de lien local ou privé).
  2. Si disponible, utilisez l'adresse IP PPP adresse IP.
  3. Si l'adresse IP PPP n'est pas disponible, utilisez l'adresse IP LAN.
  4. En dernier recours, utilisez 127.0.0.1.

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!

Déclaration:
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