java - 未使用 org.xbill.DNS lib 获取 DNS 记录

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

Output: Exception: null

我使用了org.xbill.DNS lib。

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

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

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

我的互联网连接良好。

最佳答案

这里有两件事是错误的:

  1. 代码查找 MX 记录,然后尝试将结果转换为 NSRecord。
  2. 您不应将协议(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/

相关文章:

java - org.json.JSONException : No value for custom

java - 如何使用 Gracenote ApI 在 android 中获取歌曲封面艺术?

email - Mailgun:发送到某些域时为 '550 Requested action not taken error'

java - 是否可以以编程方式解析特定 IP 地址以负载平衡域名?

java - 使用java来查询dnsjava?

java - 如何在 JFrame 上绘画

java - Java中的私有(private)变量?

android - 如何路由来自网络共享的所有流量?

Python - 网络WMI远程运行exe,抓取文本结果

android - Proguard 使用 DNSJava 库混淆 Android 代码