有人知道如何使用标准库在 java 中获取 MX 地址(例如来自 gmail.com)吗?还是我需要下载外部的?
如果它有帮助(如果它为此提供了一些东西),我正在使用 netbeans。
我还在 java 中为此搜索标准库。不成功。
然后我使用了dnsjava。
private Record[] lookupMxRecords(final String domainPart) throw TextParseException
{
final Lookup dnsLookup = new Lookup(domainPart, Type.MX);
return dnsLookup.run();
}
主.java
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
public class Main {
public static void main(String args[]) throws Exception {
Hashtable<String, String> env = new Hashtable<String, String>();
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
env.put("java.naming.provider.url", "dns://8.8.8.8/");
DirContext ctx = new InitialDirContext(env);
Attributes attrsl = ctx.getAttributes("google.com", new String[] {"MX"});
Attribute attr = attrsl.get("MX");
if (attr != null) {
System.out.println("MX records:");
for (Enumeration vals = attr.getAll(); vals.hasMoreElements();) {
System.out.println(vals.nextElement());
}
}
}
}
问题
$ javac Main.java && java Main
MX records:
20 alt1.aspmx.l.google.com.
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
40 alt3.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.