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 Detail

      • DnsClient

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

        public DnsClient​(DnsCache dnsCache)
    • Method Detail

      • 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 java.io.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:
        java.io.IOException - if an IO error occurs.
      • queryAsync

        protected MiniDnsFuture<DnsQueryResult,​java.io.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 java.util.List<java.lang.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 java.util.List<java.net.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:
        findDNS()
      • addDnsServerLookupMechanism

        public static void addDnsServerLookupMechanism​(DnsServerLookupMechanism dnsServerLookup)
      • removeDNSServerLookupMechanism

        public static boolean removeDNSServerLookupMechanism​(DnsServerLookupMechanism dnsServerLookup)
      • addBlacklistedDnsServer

        public static boolean addBlacklistedDnsServer​(java.lang.String dnsServer)
      • removeBlacklistedDnsServer

        public static boolean removeBlacklistedDnsServer​(java.lang.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 java.net.InetAddress getRandomHardcodedIpv4DnsServer()
      • getRandomHarcodedIpv6DnsServer

        public java.net.InetAddress getRandomHarcodedIpv6DnsServer()