例如,如果我在我的 DNS 配置中定义了以下 SRV 记录
_dev._tcp IN SRV 0 0 8400 dev.server.com.
我可以执行以下命令
host -lt SRV server.com
它为我提供了 dns 服务器(server.com)中 SRV 记录的完整列表。如果我想使用 JNDI 查找做同样的事情
Hashtable<String, String> env = new Hashtable<String, String>();
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
DirContext ctx = new InitialDirContext(env);
Attributes attributes = ctx.getAttributes("server.com", new String [] { "SRV" });
return attributes;
上面的代码没有返回任何属性。如果我将上面代码中的倒数第二行更改为此,
Attributes attributes = ctx.getAttributes("_dev._tcp.server.com", new String [] { "SRV" });
有用。
但问题是我之前不知道完整的域名,我必须查找 SRV 记录才能找到完整的域名。
关于如何做到这一点的任何想法?