Java中有一種方法可以在SRV記錄上執行Nslookup搜索嗎?在Java中使用Java'nslookup -type = srv'
我需要綁定到Active Directory並希望使用SRV記錄來幫助確定集羣中哪些AD是活的。
在命令行使用nslookup搜索字符串是: 'NSLOOKUP型= SRV _ ldap._tcp.ActiveDirectory域名'
感謝。
Java中有一種方法可以在SRV記錄上執行Nslookup搜索嗎?在Java中使用Java'nslookup -type = srv'
我需要綁定到Active Directory並希望使用SRV記錄來幫助確定集羣中哪些AD是活的。
在命令行使用nslookup搜索字符串是: 'NSLOOKUP型= SRV _ ldap._tcp.ActiveDirectory域名'
感謝。
正如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集成。
我從來沒有使用它,但我相信命名服務的Java "JNDI" API有DNS的提供者。查找域名爲DirContext
,然後檢查其「SRV」屬性。
DirContext ctx = new InitialDirContext();
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"});
就像我說的,我沒有試驗過這個,但我希望它可以幫助你開始。
我用http://www.dnsjava.org/並做了工作