在java中查询特定的DNS服务器
Posted
技术标签:
【中文标题】在java中查询特定的DNS服务器【英文标题】:querying against a particular dns server in java 【发布时间】:2014-11-22 16:20:29 【问题描述】:我正在尝试使用 digg 和 Java 在 linux shell 中再次查询特定的 dns 服务器。 dig 命令有效。但java方式没有。怎么了?
挖掘@dns.nic.it test.it ;;问题部分: ;test.it。在一个 ;;权威部门: 测试它。 10800 IN NS dns2.technorail.com。 测试它。 10800 IN NS dns.technorail.com。 测试它。 10800 在 NS dns3.arubadns.net。 测试它。 10800 在 NS dns4.arubadns.cz。java方式
公共静态无效 rootDNSLookup(字符串域名称)抛出 NamingException 字符串服务器="dns://dns.nic.it"; 哈希表环境 = 新哈希表(); env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory"); env.put("java.naming.provider.url", server); DirContext ictx = new InitialDirContext(env); 属性 attrs = ictx.getAttributes(domainName, new String[] "A", "AAAA", "NS", "SRV"); System.out.println(attrs); 命名枚举 e = attrs.getAll(); 而(e.hasMoreElements()) 属性 a = e.next(); System.out.println(a.getID() + " = " + a.get());java 打印:
没有属性【问题讨论】:
此代码不打印“无属性”。 它为你打印了什么吗? 这段代码中没有任何内容可以打印“无属性”。请解释或修改您的问题。 System.out.println(attrs);打印“无属性”............ 【参考方案1】:我知道这已经很长时间了,但是对于我们这些一直在寻找答案的人来说,最好的方法是使用库 dnsjava。 您正在寻找的特定类是 SimpleResolver。它有两个构造函数。不带参数使用时,它将使用系统的 DNS 设置。如果您提供 IP 地址,它将强制作为 DNS 服务器。 您可以在此处找到一个很好的使用示例: https://github.com/dnsjava/dnsjava/blob/master/dig.java
【讨论】:
链接不再有效。我正在尝试仅使用 java 进行一些简单的挖掘仿真(请求者上没有安装 BIND)。有没有机会得到线索? :)以上是关于在java中查询特定的DNS服务器的主要内容,如果未能解决你的问题,请参考以下文章