我正在使用Java中的DNS服务 - 我特意尝试查找所有google.com地址并将其显示在数组中,类似于使用nslookup运行查找:
nslookup -q=TXT _netblocks.google.com 8.8.8.8
我正在使用InetAddress
,但继续遇到异常错误。由于错误引用“未知主机”,我认为InetAddress
无法读取TXT记录(如果我使用google.com它可以工作,但这并不显示完整的IP范围)。以下是我的代码:
InetAddress dnsresult[] = InetAddress.getAllByName("_netblocks.google.com");
for (int i=0; i<dnsresult.length; i++)
System.out.println (dnsresult[i]);
如果有人能指出我正确的方向,我将不胜感激。
-JK
答案 0 :(得分:4)
您无法查找TXT或其他DNS记录InetAddress
类。 InetAddress.getAllByName()
仅查找 A 或 AAAA 记录。
检查DNS Java是否符合您的需求。
答案 1 :(得分:4)
InetAddress
没有这样做,但您可以通过JNDI DNS provider在Java中完成DNS TXT记录查找。
答案 2 :(得分:2)
以下是一个可以完成您想做的事的例子:
Attribute attr = new InitialDirContext().getAttributes("dns:_netblocks.google.com", new String[] {"TXT"}).get("TXT");
System.out.println("attr.get() = " + attr.get());
System.out.println("attr.getAll() = " + Collections.list(attr.getAll()));
如果要使用自定义dns服务器,请改用“ dns://1.1/_netblocks.google.com”。