Выберите корневой 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();
}
}