2015-11-15 2 views
0

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

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

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

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

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

ответ

1

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

(в Scala)

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() 
+1

Я думаю, что вы забыли установить распознаватель для поиска. Что-то вроде 'lookup.setResolver (resolver)' –

1
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(); 
    } 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^