Рубрики
Без рубрики

Java – Получить серверы имен веб-сайта

– Java – Получить серверы имен веб-сайта

В этом уроке мы покажем вам, как получить серверы имен веб-сайта с помощью команды 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 То копать это встроенная команда на *nix, устанавливать не нужно.

1.2 В Windows вам необходимо установить пакет BIND ( (zip-файл) из isc.org , и большой команда находится внутри zip-файла. После извлечения загруженного zip-файла установите папку "привязать" к переменной среды, чтобы вы могли использовать команду dig

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

2. Пример DNS Java

В Java мы можем вызвать внешнюю команду dig , чтобы легко получить серверы имен.

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.

Рекомендации

  1. 10 Примеров команд Linux DIG для поиска DNS
  2. Википедия: Копать (команда)
  3. Официальный сайт DNSJava
  4. Как Выполнить Команду Оболочки Из Java

Оригинал: “https://mkyong.com/java/java-get-nameservers-of-a-website/”