Class ResolverApi

java.lang.Object
org.minidns.hla.ResolverApi
Direct Known Subclasses:
DnssecResolverApi

public class ResolverApi extends Object
The high-level MiniDNS resolving API. It is designed to be easy to use.

A simple exammple how to resolve the IPv4 address of a given domain:

 
 ResolverResult<A> result = DnssecResolverApi.INSTANCE.resolve("verteiltesysteme.net", A.class);
 if (!result.wasSuccessful()) {
   RESPONSE_CODE responseCode = result.getResponseCode();
   // Perform error handling.
   …
   return;
 }
 if (!result.isAuthenticData()) {
   // Response was not secured with DNSSEC.
   …
   return;
 }
 Set<A> answers = result.getAnswers();
 for (A a : answers) {
   InetAddress inetAddress = a.getInetAddress();
   // Do someting with the InetAddress, e.g. connect to.
   …
 }
 
 

MiniDNS also supports SRV resource records as first class citizens:

 
 SrvResolverResult result = DnssecResolverApi.INSTANCE.resolveSrv(SrvType.xmpp_client, "example.org")
 if (!result.wasSuccessful()) {
   RESPONSE_CODE responseCode = result.getResponseCode();
   // Perform error handling.
   …
   return;
 }
 if (!result.isAuthenticData()) {
   // Response was not secured with DNSSEC.
   …
   return;
 }
 List<ResolvedSrvRecord> srvRecords = result.getSortedSrvResolvedAddresses();
 // Loop over the domain names pointed by the SRV RR. MiniDNS will return the list
 // correctly sorted by the priority and weight of the related SRV RR.
 for (ResolvedSrvRecord srvRecord : srvRecord) {
   // Loop over the Internet Address RRs resolved for the SRV RR. The order of
   // the list depends on the prefered IP version setting of MiniDNS.
   for (InternetAddressRR inetAddressRR : srvRecord.addresses) {
     InetAddress inetAddress = inetAddressRR.getInetAddress();
     int port = srvAddresses.port;
     // Try to connect to inetAddress at port.
     …
   }
 }