7 votes

InetAddress.getHostAddress() est-il compatible ipv6?

Est-ce que InetAddress.getHostAddress() est compatible ipv6 dans JDK 1.6 ?

Plus précisément, je fais

InetAddress.getLocalHost().getHostAddress()

Est-ce que c'est compatible ipv6 ? Est-ce que ça fonctionne pour les adresses ipv4 et ipv6 ?

7voto

Buhake Sindi Points 38654

La classe étendue java.net.Inet6Address est conforme à IPv6.

JavaDoc:

Cette classe représente une adresse Internet Protocol version 6 (IPv6). Définie par la RFC 2373 : architecture d'adressage IP version 6.

Essentiellement, si vous utilisez InetAddress.getByName() ou InetAddress.getByAddress(), les méthodes identifient si le nom ou l'adresse est un nom/adresse IPv4 ou IPv6 et retournent respectivement un Inet4Address ou Inet6Address étendu.

Quant à InetAddress.getHostAddress(), cela renvoie un null. Vous aurez besoin de java.net.Inet6Address.getHostAddress() pour renvoyer une adresse IPv6 sous forme de chaîne représentable.

4voto

Fakrudeen Points 1725

J'ai examiné le code de la classe InetAddress et il fait effectivement ce qu'il faut.

  if (isIPv6Supported()) { 
      o = InetAddress.loadImpl("Inet6AddressImpl"); 
  } 
  else { 
      o = InetAddress.loadImpl("Inet4AddressImpl"); } 
      return (InetAddressImpl)o; 
  }

3voto

Srinu Yarru Points 61

Voici le code à tester basé sur l'analyse ci-dessus:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    InetAddress localIP;
    try {
        localIP = InetAddress.getLocalHost();
         if(localIP instanceof Inet6Address){
             System.out.println("IPV6");
         } else if (localIP instanceof Inet4Address) {
             System.out.println("IPV4");
         }
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X