Mikrotik export dns to zonefile

Iš Žinynas.
00:28, 22 lapkričio 2024 versija, sukurta \dev\null (Aptarimas | indėlis) (Naujas puslapis: [https://github.com/BenMenking/routeros-api/blob/master/routeros_api.class.php Panaudota php klasė] <syntaxhighlight lang="php"> <?php $DEBUG = false; $ip = "192.168.1.1"; $use...)
(skirt) ← Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija → (skirt)
Jump to navigation Jump to search

Panaudota php klasė

<?php
$DEBUG = false;
$ip = "192.168.1.1";
$user = "apiuser";
$password = "password";

require('routeros_api.class.php');
$API = new RouterosAPI();
$API->debug = $DEBUG;
if ($API->connect($ip, $user, $password)) {
$ARRAY = $API->comm("/ip/dns/static/print");

usort($ARRAY, function ($a, $b) {
    // Split the domain into the main part and suffix
    $partsA = explode('.', $a['name']);
    $partsB = explode('.', $b['name']);

    // Extract suffix (everything after the first dot)
    $suffixA = implode('.', array_slice($partsA, 1));
    $suffixB = implode('.', array_slice($partsB, 1));

    // If suffixes are the same, sort by the full name
    if ($suffixA === $suffixB) {
        return strcmp($a['name'], $b['name']);
    }

    // Sort by suffix alphabetically
    return strcmp($suffixA, $suffixB);
});


$count = 0;
foreach ($ARRAY as $dns) {
  $count++;
  if ($dns["disabled"] == "true") continue;
    $type = "A";
  if (isset($dns["type"])) $type = $dns["type"];
    $address = "";
  if ($type !== "A") {
    $address = $dns[strtolower($type)];
  } else {
    $address = $dns["address"];
  }
  echo $dns["name"]," IN ".$type." ".$address."<br>";
}
echo "Total entries: $count<br>";
$API->disconnect();
} else {
echo "Unable to connect to the router";
}
?>