コンテンツにスキップ

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;
}

1.1.1.1の使用

関数NSLookupにレコードタイプとドメインを渡すと、NSLookupを呼び出したセルにDNSレコード値が返されます。

サポートされているDNSレコードタイプ

  • A
  • AAAA
  • CAA
  • CNAME
  • DS
  • DNSKEY
  • MX
  • NS
  • NSEC
  • NSEC3
  • RRSIG
  • SOA
  • TXT

例えば、次のように入力します:

NSLookup(B1, B2)

または、地域設定によっては、次の数式を使用する必要があります:

NSLookup(B1; B2)

Google Sheets関数


返される値は

198.41.214.162, 198.41.215.162

Google Sheets関数