基盤となるサーバーから正確なDNS情報を取得するためのJavaのライブラリはありますか?
IPからDNSへのマッピングだけでなく、A、AAAA、MX、NS、SOA、RRSIG などの他のレコードにも関心があります。
コードが Oracle VM で実行される場合は、JNDI に DNS プロバイダーを使用できます。
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");
env.put(Context.PROVIDER_URL, "dns:");
DirContext ctx = new InitialDirContext(env);
Attributes atts = ctx.getAttributes("stackexchange.com", new String[] {"MX"});
NamingEnumeration<? extends Attribute> e = atts.getAll();
while(e.hasMore()) {
System.out.println(e.next().get());
}
dnsjava lib を使用することをお勧めします。
<dependency>
<groupId>dnsjava</groupId>
<artifactId>dnsjava</artifactId>
</dependency>
例は次のようになります。
Record[] rs = new Lookup("maildomain.com", Type.MX).run();