Si vous voulez trouver les enregistrements DNS dans le tableur Google Sheets, vous pouvez créer une fonction NSLOOKUP avec les fonctions personnalisées.
Fonction NsLookup |
Ainsi, en appelant l'API de Google, vous allez pouvoir interroger les serveurs DNS pour les types d'enregistrements souhaités.
Voici le code à votre disposition :
/**
* Effectuez une recherche de NSLOOKUP à l'aide de l'API DNS de Google.
*
* @param {"google.com"} domaine Un nom de domaine à résoudre.
* @param {"A"} type Type de données à renvoyer, telles que A, AAA, MX, NS ...
* @return {String} Réponse du serveur DNS
* @customfunction
*/
function NSLookup(type, domaine) {
if (typeof type == 'undefined') {
throw new Error('Paramètre 1 type DNS manquant');
}
if (typeof domaine == 'undefined') {
throw new Error('Paramètre 2 domaine manquant');
}
type = type.toUpperCase();
var url = 'https://dns.google.com/resolve?name='+ encodeURIComponent(domaine) + '&type=' + encodeURIComponent(type);
var options = {
"muteHttpExceptions": true,
"headers": {
"accept": "application/dns-json"
}
};
var resultat = UrlFetchApp.fetch(url, options);
var rc = resultat.getResponseCode();
var resultatTexte = resultat.getContentText();
if (rc !== 200) {
throw new Error(rc);
}
var errors = [
{ "name": "NoError", "description": "Aucune erreur"}, // 0
{ "name": "FormErr", "description": "Erreur de format"}, // 1
{ "name": "ServFail", "description": "Échec du serveur"}, // 2
{ "name": "NXDomain", "description": "Domaine inconnu"}, // 3
{ "name": "NotImp", "description": "Non implanté"}, // 4
{ "name": "Refused", "description": "Requête refusée"}, // 5
{ "name": "YXDomain", "description": "Name Exists when it should not"}, // 6
{ "name": "YXRRSet", "description": "RR Set Exists when it should not"}, // 7
{ "name": "NXRRSet", "description": "RR Set that should exist does not"}, // 8
{ "name": "NotAuth", "description": "Non autorisé"} // 9
];
var response = JSON.parse(resultatTexte);
if (response.Status !== 0) {
return errors[response.Status].description;
}
var donneesDeSortie = [];
for (var i in response.Answer) {
donneesDeSortie.push(response.Answer[i].data);
}
var texteDonnees = donneesDeSortie.join(',');
return texteDonnees;
}
Et ça donne ceci :