Interface DnsResolver

  • All Known Implementing Classes:
    JndiDnsResolver

    public interface DnsResolver
    Helper class for DNS operations.
    Since:
    3.0
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.String resolveIpAddress​(java.lang.String hostname)
      Resolves the IP Address (A record) to the specified host name.
      java.lang.String resolveServiceEntry​(java.lang.String serviceType, java.lang.String domain)
      Resolves the host name for the specified service in the specified domain
      java.lang.String resolveServiceIpAddress​(java.lang.String serviceType, java.lang.String domain)
      Resolves the host name for the specified service and then the IP Address for this host in one call.
    • Method Detail

      • resolveIpAddress

        java.lang.String resolveIpAddress​(java.lang.String hostname)
                                   throws DnsEntryNotFoundException,
                                          DnsLookupException
        Resolves the IP Address (A record) to the specified host name. Throws DnsEntryNotFoundException if there is no record.
        Parameters:
        hostname - The hostname for which you need the IP Address
        Returns:
        IP Address as a String
        Throws:
        DnsEntryNotFoundException - No record found
        DnsLookupException - Unknown DNS error
      • resolveServiceEntry

        java.lang.String resolveServiceEntry​(java.lang.String serviceType,
                                             java.lang.String domain)
                                      throws DnsEntryNotFoundException,
                                             DnsLookupException

        Resolves the host name for the specified service in the specified domain

        For example, if you need the host name for an LDAP server running in the domain springsource.com, you would call resolveServiceEntry("ldap", "springsource.com").

        The DNS server needs to provide the service records for this, in the example above, it would look like this:

         _ldap._tcp.springsource.com IN SRV 10 0 88 ldap.springsource.com.
         
        The method will return the record with highest priority (which means the lowest number in the DNS record) and if there are more than one records with the same priority, it will return the one with the highest weight. You will find more informatione about DNS service records at Wikipedia.
        Parameters:
        serviceType - The service type you are searching for, e.g. ldap, kerberos, ...
        domain - The domain, in which you are searching for the service
        Returns:
        The hostname of the service
        Throws:
        DnsEntryNotFoundException - No record found
        DnsLookupException - Unknown DNS error