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 ?
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 ?
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.
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 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.