jvm 选择要使用的根DNS服务器

qmelpv7a  于 2022-11-07  发布在  其他
关注(0)|答案(2)|浏览(166)

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

  • 使用System.setProperty为Java设置DNS设置,但使用类加载器确定其作用域。但是,System类似乎无法以其他方式加载。
  • 使用dnsjava项目。但是,我没有看到这个功能被支持。最好的情况是,我必须正确处理A记录,CNAME记录,AAAA记录等才能让它工作。

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

wd2eg0qa

wd2eg0qa1#

这在dnsjava的例子中是没有的,但是我发现了这一点:
(in斯卡拉)

import org.xbill.DNS._

val resolver = new SimpleResolver("8.8.8.8")
val lookup = new Lookup("example.com")
lookup.setResolver(resolver)
val records = lookup.run()
val address = records.asInstanceOf[ARecord].getAddress()
uelo1irk

uelo1irk2#

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

}

相关问题