Package io.vertx.core.dns

## 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 Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Future<Void>` | `close()` | Close the client.
    `Future<String>` | `lookup​(String name)` | Try to lookup the A (ipv4) or AAAA (ipv6) record for the given name.
    `Future<String>` | `lookup4​(String name)` | Try to lookup the A (ipv4) record for the given name.
    `Future<String>` | `lookup6​(String name)` | Try to lookup the AAAA (ipv6) record for the given name.
    `Future<List<String>>` | `resolveA​(String name)` | Try to resolve all A (ipv4) records for the given name.
    `Future<List<String>>` | `resolveAAAA​(String name)` | Try to resolve all AAAA (ipv6) records for the given name.
    `Future<List<String>>` | `resolveCNAME​(String name)` | Try to resolve the CNAME record for the given name.
    `Future<List<MxRecord>>` | `resolveMX​(String name)` | Try to resolve the MX records for the given name.
    `Future<List<String>>` | `resolveNS​(String name)` | Try to resolve the NS records for the given name.
    `Future<String>` | `resolvePTR​(String name)` | Try to resolve the PTR record for the given name.
    `Future<List<SrvRecord>>` | `resolveSRV​(String name)` | Try to resolve the SRV records for the given name.
    `Future<List<String>>` | `resolveTXT​(String name)` | Try to resolve the TXT records for the given name.
    `default Future<String>` | `reverseLookup​(String ipaddress)` | Try to do a reverse lookup of an IP address.

- - ### 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 `Inet4Address`es. 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 `Inet6Address`es. 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 `MxRecord`s, 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 `String`s. 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 `String`s. 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 `SrvRecord`s. 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