Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save maartendekeizer/23237d8403d7960acd451947db5ef4cc to your computer and use it in GitHub Desktop.
Save maartendekeizer/23237d8403d7960acd451947db5ef4cc to your computer and use it in GitHub Desktop.
List all DNS records on OpenProvider
<?php
$opBaseUrl = 'https://api.openprovider.eu/v1beta';
$opUsername = '***';
$opPassword = '***';
$opApiCall = $opBaseUrl . '/auth/login';
$opCh = curl_init($opApiCall);
curl_setopt($opCh, CURLOPT_RETURNTRANSFER, true);
curl_setopt($opCh, CURLOPT_POSTFIELDS, json_encode(['username' => $opUsername, 'password' => $opPassword, 'ip' => '0.0.0.0']));
$opResponse = curl_exec($opCh);
echo 'Response from OpenProvider: ' . $opResponse . PHP_EOL;
$opData = json_decode($opResponse, true);
$opToken = $opData['data']['token'];
curl_close($opCh);
$opApiCall = $opBaseUrl . '/domains/?status=ACT&limit=1000';
//echo $opApiCall . PHP_EOL;
$opCh = curl_init($opApiCall);
curl_setopt($opCh, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $opToken]);
curl_setopt($opCh, CURLOPT_RETURNTRANSFER, true);
$opResponse = curl_exec($opCh);
//echo 'Response from OpenProvider: ' . $opResponse . PHP_EOL;
$opData = json_decode($opResponse, true);
curl_close($opCh);
echo PHP_EOL;
echo PHP_EOL;
$i = 0;
foreach ($opData['data']['results'] as $opDomain) {
echo str_pad($i, 6, ' ') . 'Domain: ' . $opDomain['domain']['name'] . '.' . $opDomain['domain']['extension'] . PHP_EOL;
$i ++;
$opApiCall = $opBaseUrl . '/dns/zones/' . $opDomain['domain']['name'] . '.' . $opDomain['domain']['extension'] . '?with_records=true';
//echo $opApiCall . PHP_EOL;
$opCh = curl_init($opApiCall);
curl_setopt($opCh, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $opToken]);
curl_setopt($opCh, CURLOPT_RETURNTRANSFER, true);
$opResponse = curl_exec($opCh);
//echo 'Response from OpenProvider: ' . $opResponse . PHP_EOL;
$opDnsData = json_decode($opResponse, true);
curl_close($opCh);
foreach ($opDnsData['data']['records'] as $opRecord) {
echo ' Record: ' . str_pad($opRecord['type'], 6, ' ') . ', Name: ' . $opRecord['name'] . ', Value: ' . $opRecord['value'] . PHP_EOL;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment