Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkDns.pb"

Procedure ChilkatExample()

    ; 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.i = CkDns::ckCreate()
    If dns.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; 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::ckAddDefaultNameservers(dns)

    ; Let's examine our nameservers
    nsCount.i = CkDns::ckNumNameservers(dns)
    i.i = 0
    While i < nsCount
        Debug Str(i + 1) + ": " + CkDns::ckGetNameserver(dns,i)
        i = i + 1
    Wend

    ; 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.i = 1
    ; Cloudfare
    CkDns::ckAddNameserver(dns,"1.1.1.1",supportsTls)
    ; Google
    CkDns::ckAddNameserver(dns,"8.8.8.8",supportsTls)

    ; See the nameservers now used by Chilkat
    nsCount = CkDns::ckNumNameservers(dns)
    i = 0
    While i < nsCount
        Debug Str(i + 1) + ": " + CkDns::ckGetNameserver(dns,i)
        i = i + 1
    Wend

    ; 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::ckRemoveAllNameservers(dns)
    CkDns::ckAddDefaultNameservers(dns)

    ; See the nameservers now used by Chilkat
    nsCount = CkDns::ckNumNameservers(dns)
    i = 0
    While i < nsCount
        Debug Str(i + 1) + ": " + CkDns::ckGetNameserver(dns,i)
        i = i + 1
    Wend

    ; Result:
    ; 1: 172.16.16.16


    CkDns::ckDispose(dns)


    ProcedureReturn
EndProcedure