Tcl
Tcl
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 Tcl Downloads
load ./chilkat.dll
set success 0
set dns [new_CkDns]
set json [new_CkJsonObject]
CkJsonObject_put_EmitCompact $json 0
set success [CkDns_Query $dns "SOA" "x.com" $json]
if {$success == 0} then {
puts [CkDns_lastErrorText $dns]
delete_CkDns $dns
delete_CkJsonObject $json
exit
}
puts [CkJsonObject_emit $json]
# 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
set i 0
set count_i [CkJsonObject_SizeOfArray $json "answer.soa"]
while {$i < $count_i} {
CkJsonObject_put_I $json $i
set name [CkJsonObject_stringOf $json "answer.soa[i].name"]
set ttl [CkJsonObject_IntOf $json "answer.soa[i].ttl"]
set mname [CkJsonObject_stringOf $json "answer.soa[i].mname"]
set rname [CkJsonObject_stringOf $json "answer.soa[i].rname"]
set serial [CkJsonObject_IntOf $json "answer.soa[i].serial"]
set refresh [CkJsonObject_IntOf $json "answer.soa[i].refresh"]
set retry [CkJsonObject_IntOf $json "answer.soa[i].retry"]
set expire [CkJsonObject_IntOf $json "answer.soa[i].expire"]
set minttl [CkJsonObject_IntOf $json "answer.soa[i].minttl"]
set i [expr $i + 1]
}
delete_CkDns $dns
delete_CkJsonObject $json