2009-08-19 49 views
0

我正在做以下查找Internet地址。它特别在resolv.conf中具有IPv6名称服务器的Solaris计算机上失败。在具有IPv6名称服务器的Windows计算机上以及仅限于Solaris的计算机上工作良好。从返回的错误中可以看出,当使用IPv6名称服务器时,Java“getAttributes”行在内部发生故障(深处)。我的问题是,“是否有更好的方法可以在IPv6使用时在Solaris上正常工作?”在Solaris上是否有支持IPv6的Java新库?

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

你想获得什么信息?我从来没有在 – Kevin 2009-08-19 20:05:31

+0

之前看到命名API的用法我正在做的是检索给定主机名的A记录。我需要一个特定域名的所有IP地址列表。但是,如果在运行IPv6名称服务器的Solaris主机上,则Java库本身会在内部发生故障。也许有不同的方式可以做到这一点,在这种情况下不会失败? – 2009-08-20 11:31:07

回答

0

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

0

基地java.net.InetAddressIPv6变异和变种IPv4自从Java 1.4(每的Javadoc)。

听起来像你有更多关于com.sun.jndi.dns.DnsContextFactory的问题。什么版本的Java?

+0

这是J2SE6。不幸的是,我不知道机器是否会使用IPv6或IPv4域名服务器。因此,使用Java库而不是自己动手的重点。 :-) – 2009-08-19 17:46:06