我编写了以下代码来获取任何域的 MX 记录,此处为 google.com
public class DNSRec {
public static void main(String... args)
{
try{
Record [] records = new Lookup("http://www.google.com", Type.NS).run();
for (int i = 0; i < records.length; i++) {
NSRecord ns = (NSRecord) records[i];
System.out.println("Nameserver " + ns.getTarget());
}
}catch(Exception e){
System.out.println("Exception: "+e.getMessage());
}
}}
Output: Exception: null
我使用了org.xbill.DNS lib。
上面的代码出了什么问题?
我应该使用这个库还是有其他更好的方法来获取 DNS 记录?
小例子;)非常欢迎:)。 。 。 。我们将非常感谢您的回复
我的互联网连接良好。
最佳答案
这里有两件事是错误的:
- 代码查找 MX 记录,然后尝试将结果转换为 NSRecord。
- 您不应将协议(protocol)传递到
Lookup
类构造函数中。您正在对域而不是 URL 进行名称服务器查找。因此,您应该使用google.com
而不是http://www.google.com
尝试一下:
public class DNSRec {
public static void main(String... args)
{
try{
Lookup lookup = new Lookup("google.com", Type.NS);
Record[] records = lookup.run();
for (int i = 0; i < records.length; i++) {
NSRecord ns = (NSRecord) records[i];
System.out.println("Nameserver " + ns.getTarget());
}
}catch(Exception e){
System.out.println("Exception: "+e.getMessage());
}
}}
关于java - 未使用 org.xbill.DNS lib 获取 DNS 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19562710/