5

我有一个包含多个 TXT 记录的域。挖掘显示了所有这些。名称服务器以不确定的顺序返回它们。尝试javax.naming.directory仅使用每个类检索这些记录会导致名称服务器返回第一个名称——有时是一个,有时是另一个,因为名称服务器返回的顺序不同。

这是一个代码片段:

Hashtable<String, String> env = new Hashtable<String, String>();
env.put("java.naming.factory.initial",
            "com.sun.jndi.dns.DnsContextFactory");
DirContext dirContext = new InitialDirContext(env);
Attributes attrs = dirContext.getAttributes(name, new String[] { "TXT" });

此时,attrs只包含一个Attribute. 这是预期的行为吗?如何让 Java 检索所有 TXT 记录?

4

1 回答 1

7

在我自己的测试中,(单个)返回的属性包含TXT我尝试过的域中的两条记录:

Attributes attrs = dirContext.getAttributes("paypal.com", new String[] { "TXT" });
Attribute txt = attrs.get("TXT");
NamingEnumeration e = txt.getAll();
while (e.hasMore()) {
     System.out.println(e.next());
}

如果这对您不起作用,dnsjava库肯定会允许您获取所有记录。

于 2012-09-05T10:48:49.277 回答