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

出力: 例外: null

org.xbill.DNS ライブラリを使用しました。

上記のコードで何が問題になっていますか?

このライブラリを使用する必要がありますか、または DNS レコードを取得するための他のより良い方法はありますか?

小さな例 ;) 大歓迎 :) . . . . あなたの応答は大歓迎です

私のインターネット接続は問題ありません。

4

1 に答える 1

1

ここで 2 つのことが間違っています。

  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 に答える