Sample code for 30+ languages & platforms
Perl Requires Chilkat v9.5.0.96+

DNS Query SOA Records

See more DNS Examples

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

Chilkat Perl Downloads

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

my $dns = Chilkat2::Dns->new;

my $json = Chilkat2::JsonObject->new;
$json->EmitCompact(0);

my $success = $dns->Query('SOA', 'x.com', $json);
if (!$success) {
    print $dns->LastErrorText, "\n";
    exit;
}

print $json->Emit(), "\n";

# 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

my $name = '';
my $ttl = 0;
my $mname = '';
my $rname = '';
my $serial = 0;
my $refresh = 0;
my $retry = 0;
my $expire = 0;
my $minttl = 0;

my $i = 0;
my $count_i = $json->SizeOfArray('answer.soa');
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;
}