2010-04-22 49 views
0

Java中有一種方法可以在SRV記錄上執行Nslookup搜索嗎?在Java中使用Java'nslookup -type = srv'

我需要綁定到Active Directory並希望使用SRV記錄來幫助確定集羣中哪些AD是活的。

在命令行使用nslookup搜索字符串是: 'NSLOOKUP型= SRV _ ldap._tcp.ActiveDirectory域名'

感謝。

回答

2

正如erickson指出的那樣,JNDI API有一個provider for DNS using JNDI,您可以在該鏈接上閱讀該文檔。有關工作示例查詢_ldap._.tcp.mydomain.com記錄,請參閱this code from Hudson

我相信,利用DNS提供商之前,你需要像這樣的東西(從哈得遜以上代碼修改)來加載它:

Hashtable env = new Hashtable(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory"); 
env.put("java.naming.provider.url", "dns:"); 
DirContext ctx = new InitialDirContext(env); 

從那裏你可以通過像獲得SRV記錄:

Attributes attributes = ctx.getAttributes("_ldap._tcp.mydomain.com", new String[]{"SRV"}); 
Attribute a = attributes.get("SRV"); 

我已經成功設法在幾個項目中使用這樣的代碼來實現非常直接的AD集成。

0

我從來沒有使用它,但我相信命名服務的Java "JNDI" API有DNS的提供者。查找域名爲DirContext,然後檢查其「SRV」屬性。

DirContext ctx = new InitialDirContext(); 
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"}); 

就像我說的,我沒有試驗過這個,但我希望它可以幫助你開始。