2013-01-24 70 views
0

有没有库准确取得DNS底层服务器的信息?提取DNS记录信息java

我的兴趣不仅在IPDNS映射,而且在其他记录:A,AAAA,MX,NS,SOA,RRSIGēT.C。

回答

3

如果你的代码上的Oracle VM上运行,你可以使用JNDI的DNS提供商,如:

Hashtable<String, Object> env = new Hashtable<String, Object>(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory"); 
env.put(Context.PROVIDER_URL, "dns:"); 

DirContext ctx = new InitialDirContext(env); 
Attributes atts = ctx.getAttributes("stackexchange.com", new String[] {"MX"}); 
NamingEnumeration<? extends Attribute> e = atts.getAll(); 
while(e.hasMore()) { 
    System.out.println(e.next().get()); 
} 
+0

有这个解决方案的ipv6相关问题 – builtofire

+0

@builtofire:小心解释一下吗? – jarnbjo

+0

@builtofire:更确切地说,这里查询的MX记录包含优先级和主机名,并且与IPv4或IPv6地址无关。你在谈论什么样的IPv6问题? – jarnbjo

0

最好使用dnsjava LIB:

<dependency> 
    <groupId>dnsjava</groupId> 
    <artifactId>dnsjava</artifactId> 
</dependency> 

和一个例子看起来像这个:

Record[] rs = new Lookup("maildomain.com", Type.MX).run(); 
+0

如何在android中使用它 –