Como resolver DNS com NodeJS e JavaScript
Pode ser necessário monitorar se o endereço IP que responde por um domínio mudou usando o NodeJS.
Seja para tomar alguma decisão, registrar em log, sinalizar algum evento ou renovar um registro.
Podemos fazer isso em NodeJS instalando o módulo dns.
JavaScript
npm install dns
Importe o módulo dns para o seu projeto.
JavaScript
const dns = require('node:dns');
Aqui está um exemplo básico de como isso pode ser feito.
JavaScript
dns.lookup('app.monitcall', (err, address, family) => {
if (err) throw err;
console.log(address);
});
Uma função completa para o monitoramento poderia ser algo parecido com isso:
Esta simples função pode ser chamada a cada um minuto por exemplo para checar o endereço.
JavaScript
function checarDnsAuto(G_dominio){
console.log('INF: Resolvendo o dominio ['+G_dominio+']');
dns.lookup(G_dominio, (err, address, family) => {
if (err) throw err;
if(!address){
console.log('RES: A checagem retornou um endereco vazio');
console.log('INF: Abortando a troca do IP de registro');
return
}
if(!G_ip_atual){
console.log('INF: IP atual ainda nao definido, definindo agora para ['+address+']');
G_ip_atual = address;
}else{
console.log('INF: Comparando IP atual ['+G_ip_atual+'] com o novo ['+address+']');
if(G_ip_atual == address){
console.log('RES: O IP permanece o mesmo ['+address+']');
}else{
G_ip_atual = address;
console.log('RES: O IP mudou para ['+address+']');
// uma acao a ser executada aqui
}
}
});
}
Esta foi a forma mais simples que eu encontrei para renovar o registro do meu aplicativo caso um outro IP seja respondido pelo domínio.
A documentação completa pode ser encontrada AQUI.