A API DNS permite o gerenciamento de domínios autoritativos e verificação de estatísticas do DNS recursivo no Ravi Monitor.
Todas as operações DNS requerem:
action=dns
operation
: Operação específicatoken
: Token com permissão dns
Retorna estatísticas detalhadas do serviço DNS recursivo (Unbound).
curl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=recursive"
{
"recursive": {
"service_status": {
"unbound_active": true,
"unbound_enabled": true
},
"current_metrics": {
"queries_per_second": 12.5,
"avg_response_time": 45.2,
"cache_hit_ratio": 85.3,
"total_num_queries": 15420
},
"query_types": {
"A": 8500,
"AAAA": 3200,
"PTR": 1800
},
"security_metrics": {
"dnssec_validated": 12000,
"dnssec_bogus": 15
},
"blocklists": {
"adware_malware": 25000,
"phishing": 8500
}
}
}
Lista todos os domínios autoritativos ou dados de um domínio específico.
domain
(ou dom
): Domínio específico para consultarcurl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=authoritative"
curl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=authoritative" \
-d "domain=exemplo.com"
{
"authoritative": [
{
"id": 1,
"domain": "exemplo.com",
"entries": [
{
"id": 1,
"value": "www",
"type": "A",
"host": "192.168.1.100"
},
{
"id": 2,
"value": "ns1",
"type": "A",
"host": "192.168.1.10"
}
]
}
]
}
Adiciona um novo domínio autoritativo ao sistema.
domain
(ou dom
): Nome do domíniocurl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=add_domain" \
-d "domain=novodominio.com"
{"msg": "ok"}
{"msg": "Domain already exists"}
Adiciona um novo registro DNS a um domínio existente.
domain
(ou dom
): Domíniosubdomain
(ou subdom
): Nome do subdomíniotype
(ou tipo
): Tipo do registro (A, AAAA, CNAME, etc.)host
: IP ou hostname de destinocomment
: Comentário sobre o registrocurl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=add_subdomain" \
-d "domain=exemplo.com" \
-d "subdomain=mail" \
-d "type=A" \
-d "host=192.168.1.50" \
-d "comment=Servidor de email"
Verifica se um subdomínio específico existe.
domain
(ou dom
): Domíniosubdomain
(ou subdom
): Nome do subdomíniotype
(ou tipo
): Tipo do registrocurl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=search_subdomain" \
-d "domain=exemplo.com" \
-d "subdomain=www" \
-d "type=A"
{"msg": "true"}
ou
{"msg": "false"}
Remove um registro DNS específico.
domain
(ou dom
): Domíniosubdomain
(ou subdom
): Nome do subdomíniotype
(ou tipo
): Tipo do registrocurl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=delete_subdomain" \
-d "domain=exemplo.com" \
-d "subdomain=teste" \
-d "type=A"
Remove um domínio e todos os seus registros.
domain
(ou dom
): Nome do domíniocurl -X POST "https://seu-servidor-ravi/api.php" \
-d "token=SEU_TOKEN" \
-d "action=dns" \
-d "operation=delete_domain" \
-d "domain=dominio-antigo.com"
#!/bin/bash
TOKEN="seu_token_aqui"
API_URL="https://seu-servidor-ravi/api.php"
DOMAIN="exemplo.com"
# Função para adicionar domínio
add_domain() {
local domain="$1"
curl -s -X POST "$API_URL" \
-d "token=$TOKEN" \
-d "action=dns" \
-d "operation=add_domain" \
-d "domain=$domain"
}
# Função para adicionar subdomínio
add_subdomain() {
local domain="$1"
local subdomain="$2"
local type="$3"
local host="$4"
curl -s -X POST "$API_URL" \
-d "token=$TOKEN" \
-d "action=dns" \
-d "operation=add_subdomain" \
-d "domain=$domain" \
-d "subdomain=$subdomain" \
-d "type=$type" \
-d "host=$host"
}
# Listar domínios
list_domains() {
curl -s -X POST "$API_URL" \
-d "token=$TOKEN" \
-d "action=dns" \
-d "operation=authoritative"
}
# Exemplo de uso
add_domain "$DOMAIN"
add_subdomain "$DOMAIN" "www" "A" "192.168.1.100"
list_domains
<?php
/**
* Adiciona domínio via API DNS
*
* @param string $domain Nome do domínio
* @return array Resposta da API
*/
function adicionarDominio($domain) {
$token = 'seu_token_aqui';
$apiUrl = 'https://seu-servidor-ravi/api.php';
$data = [
'token' => $token,
'action' => 'dns',
'operation' => 'add_domain',
'domain' => $domain
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
/**
* Adiciona subdomínio via API DNS
*
* @param string $domain Domínio
* @param string $subdomain Subdomínio
* @param string $type Tipo do registro
* @param string $host IP ou hostname
* @param string $comment Comentário opcional
* @return array Resposta da API
*/
function adicionarSubdominio($domain, $subdomain, $type, $host, $comment = '') {
$token = 'seu_token_aqui';
$apiUrl = 'https://seu-servidor-ravi/api.php';
$data = [
'token' => $token,
'action' => 'dns',
'operation' => 'add_subdomain',
'domain' => $domain,
'subdomain' => $subdomain,
'type' => $type,
'host' => $host,
'comment' => $comment
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
/**
* Lista domínios autoritativos
*
* @param string $domain Domínio específico (opcional)
* @return array Resposta da API
*/
function listarDominios($domain = '') {
$token = 'seu_token_aqui';
$apiUrl = 'https://seu-servidor-ravi/api.php';
$data = [
'token' => $token,
'action' => 'dns',
'operation' => 'authoritative'
];
if ($domain) {
$data['domain'] = $domain;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
/*
Uso básico:
// Adicionar domínio
$resultado = adicionarDominio('novosite.com');
// Adicionar subdomínio
$resultado = adicionarSubdominio('exemplo.com', 'www', 'A', '192.168.1.100');
// Listar todos os domínios
$dominios = listarDominios();
// Listar domínio específico
$dominio = listarDominios('exemplo.com');
// Verificar se funcionou
if ($resultado['msg'] === 'ok') {
echo "Operação realizada com sucesso";
} else {
echo "Erro: " . $resultado['msg'];
}
*/
?>
Código | Descrição |
---|---|
"ok" |
Operação realizada com sucesso |
"Please provide a valid domain" |
Domínio não informado |
"Domain already exists" |
Domínio já existe |
"Entry already exists" |
Registro já existe |
"Domain not found" |
Domínio não encontrado |
"Subdomain not found" |
Subdomínio não encontrado |
"true" |
Subdomínio encontrado (search_subdomain) |
"false" |
Subdomínio não encontrado (search_subdomain) |
"No authoritative domains found" |
Nenhum domínio autoritativo |
"No DNS log data found" |
Sem dados de estatísticas |
Nota: Após adicionar ou remover domínios/subdomínios, o sistema automaticamente processa as alterações no DNS.