通过开源软件dnsjava来获取
通过JNDI来获取
try{
Lookup lookup=new Lookup("foxmail.com",Type.MX);
lookup.setResolver(new SimpleResolver("172.19.5.35"));
lookup.run();
System.out.println(lookup.getErrorString());
if(lookup.getResult()!=Lookup.SUCCESSFUL){
System.out.println("ERROR!");
}else{
Record[] result=lookup.getAnswers();
for(int i=0;i<result.length;i++){
String host=result[i].getAdditionalName().toString();
System.out.println(host);
}
}
}catch(TextParseException e){
e.printStackTrace();
}
通过JNDI来获取
private String[] getSMTPServerByJNDI(String host) throws Exception {
Properties jndiEnvironmentProperties = new Properties();
jndiEnvironmentProperties.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
DirContext initialDirContext = new InitialDirContext(jndiEnvironmentProperties);
Attributes attributes = initialDirContext.getAttributes(host, new String[] {"MX"});
Attribute attribute = attributes.get("MX");
String[] servers = new String[attribute.size()];
for (int i = 0; i < attribute.size(); i++) {
servers[i] = attribute.get(i).toString();
servers[i]=servers[i].substring(servers[i].indexOf(" ") + 1, servers[i].length() -1);
System.out.println(servers[i]);
}
return servers;
}