Package org.minidns

Class DnsClient


public class DnsClient extends AbstractDnsClient
A minimal DNS client for SRV/A/AAAA/NS and CNAME lookups, with IDN support. This circumvents the missing javax.naming package on android.
  • Constructor Details

    • DnsClient

      public DnsClient()
      Create a new DNS client using the global default cache.
    • DnsClient

      public DnsClient(DnsCache dnsCache)
  • Method Details

    • newQuestion

      protected org.minidns.dnsmessage.DnsMessage.Builder newQuestion(org.minidns.dnsmessage.DnsMessage.Builder message)
      Specified by:
      newQuestion in class AbstractDnsClient
    • query

      public DnsQueryResult query(org.minidns.dnsmessage.DnsMessage.Builder queryBuilder) throws IOException
      Description copied from class: AbstractDnsClient
      Send a query request to the DNS system.
      Specified by:
      query in class AbstractDnsClient
      Parameters:
      queryBuilder - The query to send to the server.
      Returns:
      The response (or null).
      Throws:
      IOException - if an IO error occurs.
    • queryAsync

      protected MiniDnsFuture<DnsQueryResult,IOException> queryAsync(org.minidns.dnsmessage.DnsMessage.Builder queryBuilder)
      Description copied from class: AbstractDnsClient
      Default implementation of an asynchronous DNS query which just wraps the synchronous case.

      Subclasses override this method to support true asynchronous queries.

      Overrides:
      queryAsync in class AbstractDnsClient
      Parameters:
      queryBuilder - the query.
      Returns:
      a future for this query.
    • findDNS

      public static List<String> findDNS()
      Retrieve a list of currently configured DNS servers IP addresses. This method does verify that only IP addresses are returned and nothing else (e.g. DNS names).

      The addresses are discovered by using one (or more) of the configured DnsServerLookupMechanisms.

      Returns:
      A list of DNS server IP addresses configured for this system.
    • findDnsAddresses

      public static List<InetAddress> findDnsAddresses()
      Retrieve a list of currently configured DNS server addresses.

      Note that unlike findDNS(), the list returned by this method will take the IP version setting into account, and order the list by the preferred address types (IPv4/v6). The returned list is modifiable.

      Returns:
      A list of DNS server addresses.
      See Also:
    • addDnsServerLookupMechanism

      public static void addDnsServerLookupMechanism(DnsServerLookupMechanism dnsServerLookup)
    • removeDNSServerLookupMechanism

      public static boolean removeDNSServerLookupMechanism(DnsServerLookupMechanism dnsServerLookup)
    • addBlacklistedDnsServer

      public static boolean addBlacklistedDnsServer(String dnsServer)
    • removeBlacklistedDnsServer

      public static boolean removeBlacklistedDnsServer(String dnsServer)
    • isAskForDnssec

      public boolean isAskForDnssec()
    • setAskForDnssec

      public void setAskForDnssec(boolean askForDnssec)
    • isDisableResultFilter

      public boolean isDisableResultFilter()
    • setDisableResultFilter

      public void setDisableResultFilter(boolean disableResultFilter)
    • isUseHardcodedDnsServersEnabled

      public boolean isUseHardcodedDnsServersEnabled()
    • setUseHardcodedDnsServers

      public void setUseHardcodedDnsServers(boolean useHardcodedDnsServers)
    • getRandomHardcodedIpv4DnsServer

      public InetAddress getRandomHardcodedIpv4DnsServer()
    • getRandomHarcodedIpv6DnsServer

      public InetAddress getRandomHarcodedIpv6DnsServer()
    • getReverseIpLookupQuestionFor

      public static org.minidns.dnsmessage.Question getReverseIpLookupQuestionFor(Inet4Address inet4Address)
    • getReverseIpLookupQuestionFor

      public static org.minidns.dnsmessage.Question getReverseIpLookupQuestionFor(Inet6Address inet6Address)
    • getReverseIpLookupQuestionFor

      public static org.minidns.dnsmessage.Question getReverseIpLookupQuestionFor(InetAddress inetAddress)