没有使用org.xbill.DNS lib获取DNS记录

时间:2013-10-24 09:57:25

标签: java dns dnsjava

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

输出:例外:null

我使用了 org.xbill.DNS lib。

以上代码出了什么问题?

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

小例子;)非常欢迎:)。 。 。 。非常感谢您的回复

我的网络连接很好。

1 个答案:

答案 0 :(得分:1)

这里有两件事是错的:

  1. 代码查找MX记录,然后尝试将结果强制转换为NSRecord。
  2. 您不应将协议传递给Lookup类构造函数。您正在为而不是URL执行名称服务器查找。因此,您应该使用google.com代替http://www.google.com
  3. 放手一搏:

    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());
        }
    }}