Java有没有办法在SRV记录上进行NSlookup搜索?

我需要绑定到Active Directory,并希望使用SRV记录来帮助确定群集中的哪些广告。

在命令行中nslookup搜索字符串为:'nslookup -type = srv _ ldap._tcp.activedirectory域名'

谢谢。

有帮助吗?

解决方案

正如埃里克森(Erickson)指出的那样,jndi api有一个 使用JNDI的DNS提供商, ,您可以在该链接上阅读。对于工作示例查询 _ldap._.tcp.mydomain.com 记录,请参阅 哈德森的这个代码.

我相信,在使用DNS提供商之前,您需要使用类似的东西加载它(从上面的Hudson代码进行了修改):

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");

我已经成功地在几个项目中使用了这样的代码,以进行非常直接的广告集成。

其他提示

我从未使用过,但我相信Java的 “ jndi” API 对于命名服务,服务提供了DNS的提供商。查找域名作为一个 DirContext, ,然后检查其“ SRV”属性。

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

就像我说的那样,我没有尝试过这个,但我希望它可以帮助您入门。

我用了 http://www.dnsjava.org/ 它完成了工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top