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 :
Commentaires
Enregistrer un commentaire