Sample code for 30+ languages & platforms
C

Revert to Default DNS Nameservers

See more DNS Examples

Demonstrates how to revert back to the default nameservers of the local system where your application is running.

Note: This example requires Chilkat v9.5.0.96 or later.

Chilkat C Downloads

C
#include <C_CkDns.h>

void ChilkatSample(void)
    {
    HCkDns dns;
    int nsCount;
    int i;
    BOOL supportsTls;

    //  The only reason you would have to revert back to the local system's default nameservers
    //  is if your application had previously set different nameservers, and you wish to revert back.

    //  When your application starts, the DNS nameservers to be used are the default nameservers
    //  configured on the system where your application is running.

    //  There is one exception: Chilkat defaults to using the public Google nameservers (8.8.8.8 and 8.8.4.4) for
    //  Android applications. Reverting to the default nameservers would revert to the Google nameservers.

    //  However, Chilkat does not query the local system for the default nameservers unless Chilkat needs
    //  to do a DNS lookup and there not yet any DNS nameservers defined.  Thus technically, when your application
    //  starts, there are no default nameservers. They are auto-assigned when first needed.

    //  If your application explicitly defines DNS nameservers, such as by calling AddDefaultnamervers, or AddNameserver
    //  then Chilkat will not automatically auto-assign.

    dns = CkDns_Create();

    //  Here we are explicitly adding the system default nameservers, because technically this application
    //  has not yet done anything that would require a DNS lookup, and thus DNS nameservers are not yet defined.
    //  Your default nameserver is assumed to not support TLS.
    CkDns_AddDefaultNameservers(dns);

    //  Let's examine our nameservers
    nsCount = CkDns_getNumNameservers(dns);
    i = 0;
    while (i < nsCount) {
        printf("%d: %s\n",i + 1,CkDns_getNameserver(dns,i));
        i = i + 1;
    }

    //  On my Windows system, the result is a single nameserver at 
    //  1: 172.16.16.16

    //  ---------------------------------------------------------
    //  We could add additional nameservers, such as Google and Cloudfare
    supportsTls = TRUE;
    //  Cloudfare
    CkDns_AddNameserver(dns,"1.1.1.1",supportsTls);
    //  Google
    CkDns_AddNameserver(dns,"8.8.8.8",supportsTls);

    //  See the nameservers now used by Chilkat
    nsCount = CkDns_getNumNameservers(dns);
    i = 0;
    while (i < nsCount) {
        printf("%d: %s\n",i + 1,CkDns_getNameserver(dns,i));
        i = i + 1;
    }

    //  Result:
    //  1: 172.16.16.16
    //  2: 1.1.1.1
    //  3: 8.8.8.8

    //  ---------------------------------------------------------
    //  To revert back to the system default nameservers, clear all
    //  then re-add the default.
    CkDns_RemoveAllNameservers(dns);
    CkDns_AddDefaultNameservers(dns);

    //  See the nameservers now used by Chilkat
    nsCount = CkDns_getNumNameservers(dns);
    i = 0;
    while (i < nsCount) {
        printf("%d: %s\n",i + 1,CkDns_getNameserver(dns,i));
        i = i + 1;
    }

    //  Result:
    //  1: 172.16.16.16


    CkDns_Dispose(dns);

    }