class Poco::Net::DNS

Overview

This class provides an interface to the domain name service. Moreā€¦

#include <DNS.h>

class DNS
{
public:
    // enums

    enum HintFlag;

    // methods

    static
    HostEntry
    hostByName(
        const std::string& hostname,
        unsigned hintFlags = DNS_HINT_NONE
        );

    static
    HostEntry
    hostByAddress(
        const IPAddress& address,
        unsigned hintFlags = DNS_HINT_NONE
        );

    static
    HostEntry
    resolve(const std::string& address);

    static
    IPAddress
    resolveOne(const std::string& address);

    static
    HostEntry
    thisHost();

    static
    void
    reload();

    static
    void
    flushCache();

    static
    std::string
    hostName();

protected:
    // methods

    static
    int
    lastError();

    static
    void
    error(
        int code,
        const std::string& arg
        );

    static
    void
    aierror(
        int code,
        const std::string& arg
        );
};

Detailed Documentation

This class provides an interface to the domain name service.

An internal DNS cache is used to speed up name lookups.

Methods

static
HostEntry
resolve(const std::string& address)

Returns a HostEntry object containing the DNS information for the host with the given IP address or host name.

Throws a HostNotFoundException if a host with the given name cannot be found.

Throws a NoAddressFoundException if no address can be found for the hostname.

Throws a DNSException in case of a general DNS error.

Throws an IOException in case of any other error.

static
IPAddress
resolveOne(const std::string& address)

Convenience method that calls resolve(address) and returns the first address from the HostInfo.

static
HostEntry
thisHost()

Returns a HostEntry object containing the DNS information for this host.

Throws a HostNotFoundException if DNS information for this host cannot be found.

Throws a NoAddressFoundException if no address can be found for this host.

Throws a DNSException in case of a general DNS error.

Throws an IOException in case of any other error.

static
void
reload()

Reloads the resolver configuration.

This method will call res_init() if the Net library has been compiled with -DPOCO_HAVE_LIBRESOLV. Otherwise it will do nothing.

static
void
flushCache()

Flushes the internal DNS cache.

As of 1.4.2, the DNS cache is no longer used and this method does not do anything.

static
std::string
hostName()

Returns the host name of this host.

static
int
lastError()

Returns the code of the last error.

static
void
error(
    int code,
    const std::string& arg
    )

Throws an exception according to the error code.

static
void
aierror(
    int code,
    const std::string& arg
    )

Throws an exception according to the getaddrinfo() error code.