检查Java中的域名服务器的DNS查找(Check the dns lookup of a name

2019-09-22 09:56发布

给定一个域和域名服务器的IP我想知道的是,域名服务器在Java解析IP,我怎么能实现呢? 谢谢

Answer 1:

您至少有两种选择:

如果您的代码在任何虚拟机上运行,​​则必须使用许多可用的Java库的DNS之一。 谷歌搜索“Java的DNS库”会给你很多选择。

如果你的代码,只是要在Sun / Oracle的VM上运行,你可以使用这样的专有JNDI DNS提供商:

Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
env.put("java.naming.provider.url",    "dns://<your DNS server>");

DirContext ictx = new InitialDirContext(env);
Attributes attrs = ictx.getAttributes("www.heise.de", new String[] {"A", "AAAA"});

NamingEnumeration<? extends Attribute> e = attrs.getAll();
while(e.hasMoreElements()) {
    Attribute a = e.next();
    System.out.println(a.getID() + " = " + a.get());
}

这个例子将查询所有A和AAAA记录的主机www.heise.de指定的DNS服务器:

A = 193.99.144.85

AAAA = 2A02:2E0:3FE:100 :: 7



Answer 2:

如果您需要查询一个特定的域名服务器来看看它是如何回应你可以使用JNDI接口 。



文章来源: Check the dns lookup of a nameserver in Java
标签: java http dns