Interface DnsClient


  • public interface DnsClient
    Provides a way to asynchronously lookup information from DNS servers.

    Please consult the documentation for more information on DNS clients.

    The client is thread safe and can be used from any thread.

    Author:
    Norman Maurer
    • Method Detail

      • lookup

        Future<String> lookup​(String name)
        Try to lookup the A (ipv4) or AAAA (ipv6) record for the given name. The first found will be used.
        Parameters:
        name - the name to resolve
        Returns:
        a future notified with the resolved address if a record was found. If none was found it will get notified with null. If an error occurs it will get failed.
      • lookup4

        Future<String> lookup4​(String name)
        Try to lookup the A (ipv4) record for the given name. The first found will be used.
        Parameters:
        name - the name to resolve
        Returns:
        a future notified with the resolved Inet4Address if a record was found. If none was found it will get notified with null. If an error occurs it will get failed.
      • lookup6

        Future<String> lookup6​(String name)
        Try to lookup the AAAA (ipv6) record for the given name. The first found will be used.
        Parameters:
        name - the name to resolve
        Returns:
        a future notified with the resolved Inet6Address if a record was found. If none was found it will get notified with null. If an error occurs it will get failed.
      • resolveA

        Future<List<String>> resolveA​(String name)
        Try to resolve all A (ipv4) records for the given name.
        Parameters:
        name - the name to resolve
        Returns:
        a future notified with a List that contains all the resolved Inet4Addresses. If none was found an empty List will be used. If an error occurs it will get failed.
      • resolveAAAA

        Future<List<String>> resolveAAAA​(String name)
        Try to resolve all AAAA (ipv6) records for the given name.
        Parameters:
        name - the name to resolve
        Returns:
        a future notified with a List that contains all the resolved Inet6Addresses. If none was found an empty List will be used. If an error occurs it will get failed.
      • resolveCNAME

        Future<List<String>> resolveCNAME​(String name)
        Try to resolve the CNAME record for the given name.
        Parameters:
        name - the name to resolve the CNAME for
        Returns:
        a future notified with the resolved String if a record was found. If none was found it will get notified with null. If an error occurs it will get failed.
      • resolveMX

        Future<List<MxRecord>> resolveMX​(String name)
        Try to resolve the MX records for the given name.
        Parameters:
        name - the name for which the MX records should be resolved
        Returns:
        a future notified with a List that contains all resolved MxRecords, sorted by their MxRecord.priority(). If none was found it will get notified with an empty List. If an error occurs it will get failed.
      • resolveTXT

        Future<List<String>> resolveTXT​(String name)
        Try to resolve the TXT records for the given name.
        Parameters:
        name - the name for which the TXT records should be resolved
        Returns:
        a future notified with a List that contains all resolved Strings. If none was found it will get notified with an empty List. If an error occurs it will get failed.
      • resolvePTR

        Future<String> resolvePTR​(String name)
        Try to resolve the PTR record for the given name.
        Parameters:
        name - the name to resolve the PTR for
        Returns:
        a future notified with the resolved String if a record was found. If none was found it will get notified with null. If an error occurs it will get failed.
      • resolveNS

        Future<List<String>> resolveNS​(String name)
        Try to resolve the NS records for the given name.
        Parameters:
        name - the name for which the NS records should be resolved
        Returns:
        a future notified with a List that contains all resolved Strings. If none was found it will get notified with an empty List. If an error occurs it will get failed.
      • resolveSRV

        Future<List<SrvRecord>> resolveSRV​(String name)
        Try to resolve the SRV records for the given name.
        Parameters:
        name - the name for which the SRV records should be resolved
        Returns:
        a future resolved with a List that contains all resolved SrvRecords. If none was found it will get notified with an empty List. If an error occurs it will get failed.
      • reverseLookup

        default Future<String> reverseLookup​(String ipaddress)
        Try to do a reverse lookup of an IP address. This is basically the same as doing trying to resolve a PTR record but allows you to just pass in the IP address and not a valid ptr query string.
        Parameters:
        ipaddress - the IP address to resolve the PTR for
        Returns:
        a future notified with the resolved String if a record was found. If none was found it will get notified with null. If an error occurs it will get failed.
      • close

        Future<Void> close()
        Close the client.
        Returns:
        the future completed when the client resources have been released