- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 google 公共(public) DNS 服务器 (8.8.8.8) 进行查询,以获取某些已知 URL 的 IP 地址。但是,我似乎无法使用以下代码得到它?我正在使用 dnsjava java 库。 This is my current code
Lookup lookup = new Lookup("stackoverflow.com", Type.NS);
SimpleResolver resolver=new SimpleResolver("8.8.8.8");
lookup.setDefaultResolver(resolver);
lookup.setResolver(resolver);
Record [] records = lookup.run();
for (int i = 0; i < records.length; i++) {
Record r = (Record ) records[i];
System.out.println(r.getName()+","+r.getAdditionalName());
}
}
catch ( Exception ex) {
ex.printStackTrace();
logger.error(ex.getMessage(),ex);
}
结果:
stackoverflow.com.,ns-1033.awsdns-01.org.
stackoverflow.com.,ns-cloud-e1.googledomains.com.
stackoverflow.com.,ns-cloud-e2.googledomains.com.
stackoverflow.com.,ns-358.awsdns-44.com.
最佳答案
您不需要 DNS 库来查找 IP 地址。您可以简单地use JNDI :
Properties env = new Properties();
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.dns.DnsContextFactory");
env.setProperty(Context.PROVIDER_URL, "dns://8.8.8.8");
DirContext context = new InitialDirContext(env);
Attributes list = context.getAttributes("stackoverflow.com",
new String[] { "A" });
NamingEnumeration<? extends Attribute> records = list.getAll();
while (records.hasMore()) {
Attribute record = records.next();
String name = record.get().toString();
System.out.println(name);
}
如果您坚持使用 dnsjava 库,则需要使用 Type.A
(正如您的代码最初在编辑之前所做的那样)。
查看documentation for the Record class ,请注意直接已知子类下的长列表。您需要将每个 Record 转换为适当的子类,在本例中为 ARecord .
完成该转换后,您还有一个可用的附加方法,getAddress :
for (int i = 0; i < records.length; i++) {
ARecord r = (ARecord) records[i];
System.out.println(r.getName() + "," + r.getAdditionalName()
+ " => " + r.getAddress());
}
关于java - 使用java来查询dnsjava?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56837614/
dnsjava 具有 DNSSEC 支持。我想做一个简单的查找,就像查找示例( http://www.xbill.org/dnsjava/dnsjava-current/examples.html )
我想获取给定 IP 地址的所有注册域的列表。我可以使用 PTR 记录吗?我尝试了以下方法 ip = "217.13.68.220"; l = new Lookup(ip, Type.PTR ); l.
我注册后dnsjava as default Java DNS provider我有问题。它无法解析在我的 Linux 机器上的/etc/hosts 文件中描述的本地地址。这个文件看起来像这样: 12
我正在尝试创建一个 DNS 服务(各种 DNS 操作的自动化)来服务于我们现有的私有(private)云。我正在寻找选项和想法来做到这一点。是否有任何现有的 Java API 可以做到这一点?请建议。
我有一个 android 应用程序,它在项目的/libs/目录中有 dnsjava.jar。一切都很好,可以打包到 APK 中(没有 proguard)。 但是,当我将混淆器引入 project.pr
我是一名优秀的程序员,十分优秀!