Google SheetsにおけるDNS
1.1.1.1はGoogle Sheets内で直接動作します。始めるには、次のコードを使用してGoogle Function ↗を作成します:
function NSLookup(type, domain) {
if (typeof type == 'undefined') { throw new Error('パラメータ1のdnsタイプが欠けています'); }
if (typeof domain == 'undefined') { throw new Error('パラメータ2のドメイン名が欠けています'); }
type = type.toUpperCase();
var url = 'https://cloudflare-dns.com/dns-query?name=' + encodeURIComponent(domain) + '&type=' + encodeURIComponent(type);
var options = { muteHttpExceptions: true, headers: { accept: "application/dns-json" } };
var result = UrlFetchApp.fetch(url, options); var rc = result.getResponseCode(); var resultText = result.getContentText();
if (rc !== 200) { throw new Error(rc); }
var errors = [ { name: "NoError", description: "エラーなし"}, // 0 { name: "FormErr", description: "フォーマットエラー"}, // 1 { name: "ServFail", description: "サーバー障害"}, // 2 { name: "NXDomain", description: "存在しないドメイン"}, // 3 { name: "NotImp", description: "未実装"}, // 4 { name: "Refused", description: "クエリ拒否"}, // 5 { name: "YXDomain", description: "存在すべきでない名前が存在する"}, // 6 { name: "YXRRSet", description: "存在すべきでないRRセットが存在する"}, // 7 { name: "NXRRSet", description: "存在すべきRRセットが存在しない"}, // 8 { name: "NotAuth", description: "認証されていない"} // 9 ];
var response = JSON.parse(resultText);
if (response.Status !== 0) { return errors[response.Status].name; }
var outputData = [];
for (var i in response.Answer) { outputData.push(response.Answer[i].data); }
var outputString = outputData.join(',');
return outputString;}関数NSLookupにレコードタイプとドメインを渡すと、NSLookupを呼び出したセルにDNSレコード値が返されます。
サポートされているDNSレコードタイプ
AAAAACAACNAMEDSDNSKEYMXNSNSECNSEC3RRSIGSOATXT
例えば、次のように入力します:
NSLookup(B1, B2)または、地域設定によっては、次の数式を使用する必要があります:
NSLookup(B1; B2)
返される値は
198.41.214.162, 198.41.215.162