2012-09-13 135 views

回答

5

您至少有兩種選擇:

如果你的代碼必須在任何虛擬機上運行,​​則必須使用許多可用的Java庫的DNS之一。谷歌搜索「java dns庫」會給你很多選擇。

如果你的代碼,只是要在Sun/Oracle的VM上運行,你可以使用這樣的專有JNDI DNS提供商:

Hashtable<String, Object> env = new Hashtable<String, Object>(); 
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory"); 
env.put("java.naming.provider.url", "dns://<your DNS server>"); 

DirContext ictx = new InitialDirContext(env); 
Attributes attrs = ictx.getAttributes("www.heise.de", new String[] {"A", "AAAA"}); 

NamingEnumeration<? extends Attribute> e = attrs.getAll(); 
while(e.hasMoreElements()) { 
    Attribute a = e.next(); 
    System.out.println(a.getID() + " = " + a.get()); 
} 

這個例子將查詢指定的DNS服務器對所有A和AAAA主機www.heise.de記錄:

A = 193.99.144.85

AAAA = 2A02:2E0:3FE:100 :: 7