>我编写了以下代码来获取任何域的MX记录,此处 google.com
public class DNSRec {
public static void main(String... args)
{
try{
Record [] records = new Lookup("http://www.google.com", Type.NS).run();
for (int i = 0; i < records.length; i++) {
NSRecord ns = (NSRecord) records[i];
System.out.println("Nameserver " + ns.getTarget());
}
}catch(Exception e){
System.out.println("Exception: "+e.getMessage());
}
}}
输出:异常:空
我使用了org.xbill.DNS lib。
上面的代码出了什么问题?
我应该使用此库还是有其他更好的方法来获取 DNS 记录?
小例子;)最欢迎:) . . . .您的回复将不胜感激
我的互联网连接很好。
这里有两件事是错误的:
- 该代码查找 MX 记录,然后尝试将结果强制转换为 NSRecord。
- 不应将协议传递到
Lookup
类构造函数中。您正在对域而不是 URL 进行名称服务器查找。因此,您应该使用google.com
而不是http://www.google.com
试一试:
public class DNSRec {
public static void main(String... args)
{
try{
Lookup lookup = new Lookup("google.com", Type.NS);
Record[] records = lookup.run();
for (int i = 0; i < records.length; i++) {
NSRecord ns = (NSRecord) records[i];
System.out.println("Nameserver " + ns.getTarget());
}
}catch(Exception e){
System.out.println("Exception: "+e.getMessage());
}
}}