Home
>
Product
>
Template Top
>
詳細ページ

GASライブラリ活用:ドメインのDNSレコードから利用サービスを自動特定する方法

Webサイトのドメイン(URL)を入力するだけで、そのサイトが利用しているメールサーバーやホスティング、マーケティングツールを自動で判定できれば、競合調査やクライアントへの技術提案が非常にスムーズになります。本記事では、Google Apps Script(GAS)を用いて、DNSレコードを高速にチェックし、利用サービスを可視化するツールについて解説します。

Demo Video

Detail

1. 実装の目的

このスクリプトの目的は、ドメインに関連付けられたDNSレコード(MX, TXT, CNAMEなど)を解析し、背後で動いているインフラや外部ツールを「見える化」することです。

  • 技術スタックの特定: そのサイトがGoogle Workspaceを使っているのか、Microsoft 365なのか、あるいはどのホスティング会社を使っているのかを瞬時に特定します。
  • DNS設定の検証: SPFやDMARCといったセキュリティ設定が正しく行われているかを一目で確認できます。
  • 効率化: 手動で dig コマンドやWeb上のDNSチェッカーを使い、一つ一つ調べる手間を完全に排除します。

2. 想定されるユースケース

  • セールス・プリセールスの調査: 提案先の企業がどのようなメール配信システムやMAツール(Marketing Automation)を利用しているかを事前に把握し、最適な提案資料を作成します。
  • セキュリティ診断: クライアントのドメインでSPFやDMARCの設定が漏れていないかを確認し、改善提案を行います。
  • インフラ移行の事前調査: Webサイトやメールサーバーの移転時に、現在のレコード設定状況をスプレッドシートにリスト化して整理します。

3. ライブラリの使い方(実装ステップ)

ステップ1:ライブラリの追加

  1. Googleスプレッドシートの「拡張機能」>「Apps Script」を開きます。
  2. 左メニューの「ライブラリ +」をクリックします。
  3. スクリプトID(ライブラリ作成時に発行されたID)を入力し、追加します。
  4. 識別子を DNSChecker (推奨)に設定します。

ステップ2:実行コードの記述

Code.gs に以下のコードを記述します。これにより、スプレッドシートを開いた際に独自のメニューが表示されるようになります。

/**
 * スプレッドシート起動時にメニューを追加
 */
function onOpen() {
  DNSChecker.addMenu(); 
}

/**
 * A列のドメインをすべてチェック(詳細モード)
 */
function checkAllDomains() {
  DNSChecker.checkSheet({ detailed: true });
}

ステップ3:スプレッドシート上での実行

  1. スプレッドシートの A列 にチェックしたいドメイン(例: example.com)やURLを入力します。
  2. 追加されたカスタムメニューから「Simple Check」または「Detailed Check」を選択します。
  3. 実行後、B列以降に利用しているサービス名や各種DNSレコードが自動で出力されます。

また、カスタム関数としても利用可能です。セルに =DETECTSERVICES(A1) と入力することで、特定のドメインの利用サービスのみを抽出することもできます。

4. 検知可能なサービスカテゴリー

このツールは、以下の主要なカテゴリーのサービスを自動判別します。

  • Email: Google Workspace, Microsoft 365, 各種プロバイダー
  • Marketing: HubSpot, Salesforce (Pardot), Marketo など
  • Security: Cloudflare, SPF/DMARC設定の有無
  • Hosting: AWS, Google Cloud, Xserver などのホスティングサーバー

Source Code

HTML
CSS
Javascript

FAQ

このスクリプトは、どのようにして「Google Workspace」や「HubSpot」などの利用サービスを特定しているのですか?

各サービス固有のDNSレコードのパターンを照合しています。例えば、MXレコードに「https://www.google.com/search?q=google.com」が含まれていればGoogle Workspace、TXTレコードに「hubspot」という文字列が含まれていればHubSpotを利用していると判定する仕組みです。

チェックしたいドメインは、URL(https://...)の形式で入力しても大丈夫ですか?

はい、大丈夫です。ライブラリ内部でURLから自動的にドメイン部分(example.comなど)を抽出して解析を行うため、URLをそのまま貼り付けても問題なく動作します。

「Simple Check」と「Detailed Check」にはどのような違いがありますか?

「Simple Check」は特定されたサービス名のみを表示しますが、「Detailed Check」を実行すると、サービス名に加えて実際のMXレコードの内容や、SPF、DMARCといった詳細な設定状況まで解析し、スプレッドシートに出力します。