使用java进行'nslookup -type = srv'
-
01-10-2019 - |
题
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/ 它完成了工作
不隶属于 StackOverflow