DNS、width = 300、height = 200

このチュートリアルでは、Java digコマンドを使用してウェブサイトのネームサーバーを取得する方法を説明します。

1. Digコマンドの使用

1.1

Linux

では、 `dig`コマンドを使ってウェブサイトのDNSルックアップを照会することができます。例えば:

$ dig any mkyong.com
//...
mkyong.com.             299     IN      A       162.159.x.x
mkyong.com.             299     IN      A       198.41.x.x
mkyong.com.             299     IN      MX      10 aspmx2.googlemail.com.
mkyong.com.             299     IN      MX      10 aspmx3.googlemail.com.
mkyong.com.             299     IN      MX      1 aspmx.l.google.com.
mkyong.com.             299     IN      MX      5 alt1.aspmx.l.google.com.
mkyong.com.             299     IN      MX      5 alt2.aspmx.l.google.com.
mkyong.com.             21599   IN      NS      max.ns.cloudflare.com.
mkyong.com.             21599   IN      NS      erin.ns.cloudflare.com.

;; Query time: 246 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Mar 18 08:35:24 Malay Peninsula Standard Time 2014
;; MSG SIZE  rcvd: 387

__P.S `dig`は** nixの組み込みコマンドで、インストールする必要はありません。

1.2

Windows

の場合、http://www.isc.org/[isc.org]からhttps://www.isc.org/downloads/bind/[BINDパッケージ](zipファイル)をインストールする必要があります。 、 `dig`コマンドはzipファイルの中にあります。ダウンロードしたzipファイルを解凍した後、 “bind”フォルダを環境変数に設定して、どこでも `dig`コマンドを使うことができます。

C:\> dig +short NS mkyong.com
max.ns.cloudflare.com.
erin.ns.cloudflare.com.

2. Java DNSの例

Javaでは、外部の `dig`コマンドを呼び出してネームサーバを簡単に取得できます。

ShellCommand.java

package com.mkyong.shell;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ShellCommand {

    public static void main(String args[]) {

        ShellCommand shell = new ShellCommand();

        String result = shell.run("dig +short NS mkyong.com");
        System.out.println(result);

    }

    public String run(String command) {

        StringBuilder sb = new StringBuilder();
        BufferedReader reader = null;
        Process p;

        try {
            p = Runtime.getRuntime().exec(command);
            p.waitFor();
            reader = new BufferedReader(
                new InputStreamReader(p.getInputStream()));

            String line = "";
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return sb.toString();

    }

}

出力

max.ns.cloudflare.com.
erin.ns.cloudflare.com.

3.メールサーバを入手する

さらに、「MX」を使用してメールサーバーを取得することもできます。

C:\> dig +short MX mkyong.com

10 aspmx2.googlemail.com.
5 alt2.aspmx.l.google.com.
5 alt1.aspmx.l.google.com.
1 aspmx.l.google.com.
10 aspmx3.googlemail.com.

参考文献

DNSルックアップのコマンド例]。

Wikipedia:Dig(command)


  1. DNSJava公式サイト

  2. リンク://java/how-to-execute-shell-command-from-java/[実行方法

Javaからのシェルコマンド]


dns


java

リンク://タグ/ネームサーバ/[ネームサーバ]