NodeJS

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.

Espero ter ajudado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *