1

我已经编写了以下代码来获取任何域的 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());
    }
}}

输出:异常:空

我使用了 org.xbill.DNS库。

上面的代码出了什么问题?

我应该使用这个库还是有其他更好的方法来获取 DNS 记录?

小例子 ;) 最受欢迎 :) 。. . . 您的回复将不胜感激

我的互联网连接很好。

4

1 回答 1

1

这里有两件事是错误的:

  1. 该代码查找 MX 记录,然后尝试将结果转换为 NSRecord。
  2. 您不应该将协议传递给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());
    }
}}
于 2013-10-24T10:34:00.923 回答