Sample code for 30+ languages & platforms
PHP

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

Chilkat2 PHP
<?php

use Chilkat2\Dns;
use Chilkat2\JsonObject;

$success = false;

$dns = new Dns();

$json = new JsonObject();
$json->EmitCompact = false;

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

echo $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

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

$i = 0;
$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;
}