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 Details

    • 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