Как настроить разрешение имени хоста для использования собственного DNS-сервера в Java?

java.net.InetAddress разрешает имена хостов, используя преобразователь имен хоста по умолчанию -локального компьютера по умолчанию:

Host name-to-IP address resolution is accomplished through the use of a combination of local machine configuration information and network naming services such as the Domain Name System (DNS) and Network Information Service(NIS). The particular naming services(s) being used is by default the local machine configured one. For any host name, its corresponding IP address is returned. [source]

Как мы можем настроить это поведение, не изменяя преобразователь имени хоста по умолчанию на локальном компьютере?

Например, можно ли настроить java.net.InetAddress таким образом, чтобы он разрешал имена хостов через OpenDNS (208.67.222.222, 208.67.220.220 )или Google Public DNS (2001 :] 4860 :4860 ::8888, 2001 :4860 :4860 ::8844 )?

Или единственным решением является явное создание запросов пакетов DNS, отправка их на серверы через java.net.DatagramSocket или java.net.Socket и анализ ответов?

10
задан Flow 11 June 2014 в 09:20
поделиться