Sample code for 30+ languages & platforms
Visual FoxPro

DNS Query SOA Records

See more DNS Examples

Shows how to perform a DNS query to retrieve SOA records.

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

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loDns
LOCAL loJson
LOCAL lcName
LOCAL lnTtl
LOCAL lcMname
LOCAL lcRname
LOCAL lnSerial
LOCAL lnRefresh
LOCAL lnRetry
LOCAL lnExpire
LOCAL lnMinttl
LOCAL i
LOCAL lnCount_i

lnSuccess = 0

loDns = CreateObject('Chilkat.Dns')

loJson = CreateObject('Chilkat.JsonObject')
loJson.EmitCompact = 0

lnSuccess = loDns.Query("SOA","x.com",loJson)
IF (lnSuccess = 0) THEN
    ? loDns.LastErrorText
    RELEASE loDns
    RELEASE loJson
    CANCEL
ENDIF

? loJson.Emit()

* Sample response.
* Parsing code below..

* {
*   "answer": {
*     "soa": [
*       {
*         "name": "x.com",
*         "ttl": 1800,
*         "mname": "alexia.ns.cloudflare.com",
*         "rname": "dns.cloudflare.com",
*         "serial": -1971124188,
*         "refresh": 10000,
*         "retry": 2400,
*         "expire": 604800,
*         "minttl": 1800
*       }
*     ]
*   }
* }

* Use this online tool to generate parsing code from sample JSON: 
* Generate Parsing Code from JSON

i = 0
lnCount_i = loJson.SizeOfArray("answer.soa")
DO WHILE i < lnCount_i
    loJson.I = i
    lcName = loJson.StringOf("answer.soa[i].name")
    lnTtl = loJson.IntOf("answer.soa[i].ttl")
    lcMname = loJson.StringOf("answer.soa[i].mname")
    lcRname = loJson.StringOf("answer.soa[i].rname")
    lnSerial = loJson.IntOf("answer.soa[i].serial")
    lnRefresh = loJson.IntOf("answer.soa[i].refresh")
    lnRetry = loJson.IntOf("answer.soa[i].retry")
    lnExpire = loJson.IntOf("answer.soa[i].expire")
    lnMinttl = loJson.IntOf("answer.soa[i].minttl")
    i = i + 1
ENDDO

RELEASE loDns
RELEASE loJson