0

我正在执行以下操作来查找 Internet 地址。它在 resolv.conf 中有 IPv6 名称服务器的 Solaris 机器上特别失败。在具有 IPv6 名称服务器的 Windows 机器和仅 IPv4 的 Solaris 机器上运行良好。从返回的错误来看,当出现 IPv6 名称服务器时,Java“getAttributes”行似乎在内部(某处很深)出现解析问题。我的问题是,“当使用 IPv6 时,有没有一种方法可以更好地在 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" }); 
4

2 回答 2

0

自 Java 1.4(根据 javadoc)以来,基本java.net.InetAddress具有IPv6变体和IPv4变体。

听起来您对 com.sun.jndi.dns.DnsContextFactory 有更多疑问。什么版本的Java?

于 2009-08-19T17:04:38.643 回答
0

较新版本的 Java 工作“更好”。升级到 Java 7 后不再像这样在内部失败。

于 2012-10-03T19:20:46.480 回答