2009-08-19 7 views
0

Je suis en train de faire ce qui suit pour rechercher une adresse Internet. Il échoue spécifiquement sur les machines Solaris qui ont des serveurs de noms IPv6 dans le fichier resolv.conf. Fonctionne correctement sur les machines Windows qui ont des serveurs de noms IPv6 et sur les machines Solaris uniquement sur IPv4. De l'erreur renvoyée, il apparaît que la ligne Java "getAttributes" échoue en interne (quelque part en profondeur) avec un problème d'analyse lorsqu'elle est présentée avec un serveur de noms IPv6. Ma question est, "est-il un moyen de faire mieux cela fonctionne correctement sur Solaris lorsque IPv6 est utilisé?"Existe-t-il une nouvelle bibliothèque pour Java prenant en charge IPv6 sous Solaris?

InetAddress localhost=InetAddress.getLocalHost(); 
ipAddress=localhost.getHostAddress(); 
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory"); 
DirContext ictx = new InitialDirContext(env); 
Attributes attrs=ictx.getAttributes("blah.test.fakedomain", new String[] { "A" }); 
+0

Quelles informations cherchez-vous à obtenir? Je n'ai jamais vu cette utilisation de l'API de dénomination avant – Kevin

+0

Ce que je fais est de récupérer les enregistrements A pour un nom d'hôte donné. J'ai besoin d'une liste de toutes les adresses IP pour un certain nom de domaine. Toutefois, la bibliothèque Java elle-même échoue à l'intérieur si sur un hôte Solaris exécutant des serveurs de noms IPv6. Peut-être y a-t-il une façon différente de le faire qui n'échouera pas dans cette situation? –

Répondre

0

Les nouvelles versions de Java fonctionnent "mieux". N'échoue plus de manière interne de la sorte après la mise à niveau vers Java 7.

0

La base java.net.InetAddress a IPv6 variantes et IPv4 variantes depuis Java 1.4 (par Javadoc).

On dirait que vous avez d'autres questions sur com.sun.jndi.dns.DnsContextFactory. Quelle version de Java?

+0

Ceci est J2SE6. Malheureusement, je ne sais pas à l'avance si la machine utilisera des serveurs de noms IPv6 ou IPv4. D'où l'intérêt d'utiliser la bibliothèque Java et de ne pas rouler la mienne. :-) –