Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoDns
    Integer iNsCount
    Integer i
    Boolean iSupportsTls
    String sTemp1

    // 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.

    Get Create (RefClass(cComChilkatDns)) To hoDns
    If (Not(IsComObjectCreated(hoDns))) Begin
        Send CreateComObject of hoDns
    End

    // 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.
    Send ComAddDefaultNameservers To hoDns

    // Let's examine our nameservers
    Get ComNumNameservers Of hoDns To iNsCount
    Move 0 To i
    While (i < iNsCount)
        Get ComGetNameserver Of hoDns i To sTemp1
        Showln (i + 1) ": " sTemp1
        Move (i + 1) To i
    Loop

    // 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
    Move True To iSupportsTls
    // Cloudfare
    Send ComAddNameserver To hoDns "1.1.1.1" iSupportsTls
    // Google
    Send ComAddNameserver To hoDns "8.8.8.8" iSupportsTls

    // See the nameservers now used by Chilkat
    Get ComNumNameservers Of hoDns To iNsCount
    Move 0 To i
    While (i < iNsCount)
        Get ComGetNameserver Of hoDns i To sTemp1
        Showln (i + 1) ": " sTemp1
        Move (i + 1) To i
    Loop

    // 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.
    Send ComRemoveAllNameservers To hoDns
    Send ComAddDefaultNameservers To hoDns

    // See the nameservers now used by Chilkat
    Get ComNumNameservers Of hoDns To iNsCount
    Move 0 To i
    While (i < iNsCount)
        Get ComGetNameserver Of hoDns i To sTemp1
        Showln (i + 1) ": " sTemp1
        Move (i + 1) To i
    Loop

    // Result:
    // 1: 172.16.16.16


End_Procedure