Выберите корневой DNS-сервер для использования

Я хочу выбрать, какой DNS-сервер использовать. Я сделаю потенциально несколько вариантов в одной и той же JVM. Я хочу разрешить IP-адреса из имен хостов.

Вещи, которые я рассмотрел:

  • С помощью System.setProperty установить настройки DNS для Java, но ограничить его с помощью загрузчиков классов. Тем не менее, похоже, что System класс не может быть загружен по-другому.

  • Использование проекта dnsjava. Однако я не вижу эту функцию поддерживаемой. В лучшем случае кажется, что мне нужно правильно обработать запись A, записи CNAME, записи AAAA и т. Д., Чтобы это работало.

Какой самый простой способ использовать другой DNS-сервер неглобальным способом?

2 ответа

Этого не было в примерах для dnsjava, но я понял это:

(в Скале)

import org.xbill.DNS._

val resolver = new SimpleResolver("8.8.8.8")
val lookup = new Lookup("example.com")
val records = lookup.run()
val address = records.asInstanceOf[ARecord].getAddress()
import org.xbill.DNS.*;
public Class ChoseDNSServer
{
    private SimpleResolver sp;
    private Lookup look;

    public ChoseDNSServer(String ip)
    {
          //Provide ip of server you want to choose for your DNS query
          sp = new SimpleResolver(ip);
          look = new Lookup("URL");
          look.setResolver(sp);          
          //Above method is used for setting up default DNS server.
    }

    public switchToServer(String ip)
    {
         sp = new SimpleResolver(ip);
         look.setResolver(sp);
    }

    public Record lookup(String url)
    {
         look = new Lookup(url);
         return look.run();
    }

}
Другие вопросы по тегам