Sample code for 30+ languages & platforms
B4X

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

B4X
Dim success As Boolean = False

Dim dns As ChilkatDns
dns.Initialize("dns")

Dim json As ChilkatJsonObject
json.Initialize
json.EmitCompact = False

success = dns.Query("SOA", "x.com", json)
If success = False Then
    Log(dns.LastErrorText)
    Return
End If


Log(json.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

Dim name As String
Dim ttl As Int
Dim mname As String
Dim rname As String
Dim serial As Int
Dim refresh As Int
Dim retry As Int
Dim expire As Int
Dim minttl As Int

Dim i As Int = 0
Dim count_i As Int = json.SizeOfArray("answer.soa")
Do While i < count_i
    json.I = i
    name = json.StringOf("answer.soa[i].name")
    ttl = json.IntOf("answer.soa[i].ttl")
    mname = json.StringOf("answer.soa[i].mname")
    rname = json.StringOf("answer.soa[i].rname")
    serial = json.IntOf("answer.soa[i].serial")
    refresh = json.IntOf("answer.soa[i].refresh")
    retry = json.IntOf("answer.soa[i].retry")
    expire = json.IntOf("answer.soa[i].expire")
    minttl = json.IntOf("answer.soa[i].minttl")
    i = i + 1
Loop