public class DNSQuery {
public static void main(String[] args) throws NamingException {
System.setProperty("socksProxyHost", "proxy2.lh.petrochina");
System.setProperty("socksProxyPort", "8080");
//域名和DNS服务器
String domain = args[0];
String dnsServer = args.length<2?"":"//"+args[1];
Hashtable<String,String> env = new Hashtable<String,String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");
env.put(Context.PROVIDER_URL, "dns:"+dnsServer);
DirContext dirContext = new InitialDirContext(env);
//分别获取所有属性和带有MX的属性
Attributes allAttribute = dirContext.getAttributes(domain);
Attributes mxAttribute = dirContext.getAttributes(domain,new String[]{"MX"});
//让自动选择
/*
DirContext dirContext = new InitialDirContext();
Attributes allAttribute = dirContext.getAttributes("dns:"+dnsServer+"/"+domain);
Attributes mxAttribute = dirContext.getAttributes("dns:"+dnsServer+"/"+domain,
new String[]{"MX"});*/
System.out.println("打印出域 "+domain + " 中的所有Attributes对象");
System.out.println(allAttribute);
System.out.println("打印出域 "+domain + " 中的只含有mx的Attributes对象");
System.out.println(mxAttribute);
System.out.println("打印Attributes的属性");
NamingEnumeration ne = allAttribute.getAll();
while (ne.hasMoreElements()) {
System.out.println(ne.next());
}
System.out.println("直接检索");
Attribute attribute = allAttribute.get("MX");
System.out.println(attribute);
System.out.println("mx的第一个属性");
String record = (String) attribute.get();
System.out.println(record);
System.out.println("提取服务器地址");
String smtp = record.substring(record.indexOf(" ") + 1);
System.out.println(smtp);
}
}
相关文章
- DIY一个DNS查询器:程序实现
- TDengine 时序数据特色查询语法详解,助力时序场景下的应用开发
- C#.NET微信公众账号接口开发系列文章整理--微信接口开发目录,方便需要的博友查询
- Ruby on Rails邮件程序没有在开发模式下发送电子邮件
- ActionMailer在开发中“发送”电子邮件。日志,但没有收到
- ActionMailer在开发Rails 4中不发送邮件
- Rails 4.2 - Sidekiq不在开发中发送电子邮件
- Rails 4 ActionMailer没有在开发模式下发送电子邮件
- 【Win 10 应用开发】分析 URI 中的查询字符串
- mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志