我正在构建一个快速的Web爬虫,我需要多线程DNS解析,所以我选择了一个名为dnsjava的多线程DNS服务提供程序.不幸的是,我无法弄清楚如何更换默认的DNS服务提供商.
我查看了dnsjava 的README文件,但说明并不是很完整.
替换标准Java DNS功能:
从Java 1.4开始,可以在运行时加载服务提供程序.要加载dnsjava服务提供程序,请按照上面的说明构建它并设置系统属性:
sun.net.spi.nameservice.provider.1 = DNS,dnsjava
这指示JVM以最高优先级使用DNS提供的dnsjava服务.
有几件事我不清楚:
我在Windows 7机器上运行,我不确定我需要做什么来查找/修改系统属性...帮助!?
更新:
知道了:System.setProperty("sun.net.spi.nameservice.provider.1","dns,dnsjava");
我有一个Android应用程序,在项目的/ libs /目录中有dnsjava.jar.一切都很好,可以打包成APK(没有proguard).
但是,当我将proguard引入project.properties(在eclipse中)时,我收到以下警告:
[2013-03-07 14:16:08 - ] Proguard returned with error code 1. See console
[2013-03-07 14:16:08 - ] Warning: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor: can't find superclass or interface sun.net.spi.nameservice.NameServiceDescriptor
[2013-03-07 14:16:08 - ] Warning: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor: can't find referenced class sun.net.spi.nameservice.NameService
[2013-03-07 14:16:08 - ] Warning: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor: can't find referenced class sun.net.spi.nameservice.NameServiceDescriptor
[2013-03-07 14:16:08 - ] Warning: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor: can't find referenced class sun.net.spi.nameservice.NameService
[2013-03-07 14:16:08 - ] Warning: org.xbill.DNS.spi.DNSJavaNameServiceDescriptor: can't find referenced class sun.net.spi.nameservice.NameService
[2013-03-07 14:16:08 - ] You should check if …Run Code Online (Sandbox Code Playgroud) 如何询问DNS服务器,例如8.8.8.8 for google.com域名?在这个http://www.xbill.org/dnsjava/dnsjava-current/examples.html页面上的示例如何发送指定域的请求,但如何询问具体服务器并检查答案是否具有权威性?我可以使用dnsjava或其他Java lib