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