java - 使用 Java 处理 'nslookup -type=srv'

标签 java active-directory nslookup srv

Java 中有没有办法对 SRV 记录进行 Nslookup 搜索?

我需要绑定(bind)到 Active Directory,并希望使用 SRV 记录来帮助确定集群中的哪些 AD 处于 Activity 状态。

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

谢谢。

最佳答案

正如埃里克森指出的,JNDI API 有一个 provider for DNS using JNDI ,您可以在该链接上阅读有关内容。有关查询 _ldap._.tcp.mydomain.com 记录的工作示例,请参阅 this code from Hudson .

我相信,在使用 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");

我已经成功地在几个项目中使用这样的代码来实现非常直接的 AD 集成。

关于java - 使用 Java 处理 'nslookup -type=srv',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695085/

相关文章:

java - Java EE 和 Spring 中的注入(inject)类是否同步?

java - 在有状态的 ejb 扩展中通过查找找到的 JPA 实体不受管理

java - 识别 Windows AD 远程用户 Spring Boot + Waffle

c# - 通过 LDAP 连接到 Active Directory

c - 与sqlite3链接时,getaddrinfo永远卡住

java - 如何只替换标记,没有子字符串?

c# - Windows 8 计算机无法迭代工作组成员?

linux - nslookup 报告 "can' t 解析 '(null)' : Name does not resolve"though it successfully resolved the DNS names

kubernetes - 为什么dig不通过dns名称解析K8s服务而nslookup没有问题?

java - Tabhost 中的 Android FragmentActivity?