
このチュートリアルでは、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.
参考文献
-
[10 Linux DIG
DNSルックアップのコマンド例]。
Wikipedia:Dig(command)
-
リンク://java/how-to-execute-shell-command-from-java/[実行方法
Javaからのシェルコマンド]