0

我想选择要使用的 DNS 服务器。我可能会在同一个 JVM 中做出多种选择。我想从主机名解析 IP 地址。

我考虑过的事情:

  • System.setProperty用于为 Java 设置 DNS 设置,但使用类加载器对其进行范围限定。但是,似乎System无法以不同方式加载该类。

  • 使用 dnsjava 项目。但是,我认为不支持此功能。充其量,我似乎必须正确处理 A 记录、CNAME 记录、AAAA 记录等才能使其正常工作。

以非全局方式使用不同 DNS 服务器的最简单方法是什么?

4

2 回答 2

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()
于 2015-11-15T03:26:29.833 回答
0
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();
    }

}
于 2015-12-02T14:54:48.747 回答