コンテンツへスキップ
Tutorial

WHOIS API: 1 つの POST で RDAP を介した構造化ドメイン検索

| 6 min read

1 回の API 呼び出しで、任意のドメインのレジストラ、有効期限、ネームサーバー、ステータス コードを取得します。 RDAP からの構造化 JSON。 テキスト解析はありません。

Terminal window showing domain lookup results
Photo by Sai Kiran Anagani on Unsplash

あなたはドメイン監視ツールを構築しています。 レジストラ、有効期限、ネームサーバーが必要です ポートフォリオ内のすべてのドメインに対して。 古い W​​HOIS プロトコルでは、非構造化テキストが提供されます。 毎 レジストラによってフォーマットが異なります。 解析するということは、 レジストラは出力形式を変更します。

RDAP (登録データ アクセス プロトコル) は、構造化された JSON を返すことでこの問題を解決します。 ただし、各TLD には別の RDAP サーバーがあるため、それを見つけるには IANA ブートストラップ レジストリにクエリを実行する必要があります。 それから RDAP の実装はレジストリによって異なるため、応答を正規化する必要があります。

ボトイ /v1/whois エンドポイントはこれらすべてを処理します。 1 つの POST リクエスト、1 つの JSON すべての TLD の応答。

エンドポイント

curl -X POST https://api.botoi.com/v1/whois \\
  -H "Content-Type: application/json" \\
  -d '{ "domain": "stripe.com" }'

応答:

{
  "success": true,
  "data": {
    "domain": "stripe.com",
    "registrar": "SafeNames Ltd.",
    "status": [
      "client delete prohibited",
      "client transfer prohibited",
      "client update prohibited",
      "server delete prohibited",
      "server transfer prohibited",
      "server update prohibited"
    ],
    "created": "1995-09-12T04:00:00Z",
    "updated": "2024-06-18T10:22:31Z",
    "expires": "2032-09-11T04:00:00Z",
    "nameservers": [
      "ns-cloud-d1.googledomains.com",
      "ns-cloud-d2.googledomains.com",
      "ns-cloud-d3.googledomains.com",
      "ns-cloud-d4.googledomains.com"
    ]
  }
}

レジストラ名、ドメイン ステータス コード、 作成日、最終更新日、有効期限、ネームサーバー。 すべての日付は ISO 8601 です。すべて ネームサーバーは小文字です。 解析は必要ありません。

生の WHOIS テキストと構造化された API 応答

同じドメインに対して生の WHOIS プロトコルが返すものは次のとおりです。 これはあなたが得るであろうテキストです ある whois stripe.com 指示:

Domain Name: STRIPE.COM
Registry Domain ID: 609783_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.safenames.net
Registrar URL: http://www.safenames.net
Updated Date: 2024-06-18T10:22:31Z
Creation Date: 1995-09-12T04:00:00Z
Registry Expiry Date: 2032-09-11T04:00:00Z
Registrar: SafeNames Ltd.
Registrar IANA ID: 447
Registrar Abuse Contact Email: abuse@safenames.net
Registrar Abuse Contact Phone: +44.1onal234567
Domain Status: clientDeleteProhibited
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: serverDeleteProhibited
Domain Status: serverTransferProhibited
Domain Status: serverUpdateProhibited
Name Server: NS-CLOUD-D1.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D2.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D3.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D4.GOOGLEDOMAINS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form:
   https://www.icann.org/wicf/
>>> Last update of whois database: 2026-03-29T10:00:00Z <<<

それは標準フォーマットのないテキストの壁です。 フィールド名、間隔、順序の変更 レジストラ間。 Verisign は日付を一方向にフォーマットします。 Nominet はそれらを別のフォーマットにします。 一部 レジストラには、登録者の名前と住所が含まれます。 GDPR に基づいてすべてを編集する人もいます プライバシーシールド。

API 応答では、同じデータが予測可能な構造で提供されます。 あなたはアクセスします data.expires 「レジストリ有効期限:」の正規表現を記述する代わりに。 繰り返します data.nameservers 「Name Server:」で始まる行をスキャンする代わりに。

ドメイン有効期限モニターを構築する

誰かが更新を忘れたためにドメインを失うことは、費用がかかり、恥ずかしいことです。 このNode.js スクリプトはドメインのリストをチェックし、30 日以内に期限切れになるドメインにフラグを立てます。 毎日実行します cron ジョブまたは GitHub Actions のスケジュールされたワークフロー。

スクリプトはドメイン リストを繰り返し処理し、それぞれをチェックして、期限切れになるドメインを収集します。 30日以内に。 の sendAlert 関数は Slack に投稿します。 それをPagerDutyに置き換えてください。 電子メール、または任意の Webhook エンドポイント。

これはいくつかの方法で拡張できます。結果をデータベースに保存して有効期限の傾向を追跡したり、 段階的アラートの 60 日および 90 日のしきい値、または検出するネームサーバーの相互参照 不正な DNS 変更。

ドメインステータスコードについて

status 応答内の配列は、レジストリと レジストラがドメインで許可します。 最も一般的なコードのリファレンスは次のとおりです。

「サーバー転送禁止」および「サーバー削除禁止」のドメインはレジストリレベルです ロック。 レジストリ オペレータのみが削除できるため、これらはクライアント レベルのロックよりも強力です。 彼ら。 価値の高いドメイン stripe.com そして google.com 両方持っています 層。

ドメインのステータスに「削除保留中」または「引き換え期間」が表示された場合は、すぐに対処してください。 ドメインは もうすぐリリースされるか、レジストラを通じて有料で復元できます。

このエンドポイントを使用する場合

  • ドメインポートフォリオのモニタリング。 数百ものドメインの有効期限を追跡します。 ドメインが失効する前にチームに警告してください。
  • フィッシング調査。 不審なドメインがいつ登録されたかを確認してください。 フィッシング ドメインは、攻撃の数時間または数日前に作成されることがよくあります。
  • リード資格。 2003 年に作成されたドメインは、確立されたことを示唆しています。 会社。 先週登録されたドメインは別のことを物語っています。
  • DNS変更検出。 現在のネームサーバーを既知のベースラインと比較します。 承認していないネームサーバーの変更は、ドメインハイジャックを意味する可能性があります。
  • コンプライアンスとデューデリジェンス。 ベンダー時にドメイン所有権の詳細を確認する オンボーディングまたは M&A デューデリジェンス。 レジストラ コードとステータス コードにより、ドメインの セキュリティ態勢。

重要なポイント

  • POST /v1/whois レジストラ、日付、ステータス コード、およびネームサーバーを返します。 正規化されたJSON。
  • エンドポイントは、従来の WHOIS テキスト プロトコルではなく、RDAP サーバーにクエリを実行します。 構造化データを取得できます パーサーを書かずに。
  • 匿名アクセスは、API キーなしで 1 分あたり 5 リクエストで機能します。 有料プランではその制限が削除されます。
  • 応答には次のものが含まれます expires ISO 8601 のフィールド。有効期限を作成するために使用します。 モニター、アラート パイプライン、またはドメイン ダッシュボード。

FAQ

WHOIS と RDAP の違いは何ですか?
WHOIS は 1982 年からのレガシー プロトコルです。WHOIS は、レジストラ間で標準形式のない非構造化プレーン テキストを返します。 RDAP (Registration Data Access Protocol) は、構造化された JSON を返す IETF 標準化された代替プロトコルです。 botoi /v1/whois エンドポイントは RDAP サーバーにクエリを実行し、正規化された JSON 応答を返します。
WHOIS検索APIは無料ですか?
はい。 匿名アクセスには API キーは必要なく、1 分あたり 5 件のリクエストに加え、1 日あたり 100 件のリクエストが可能です。 有料プランは月額 9 ドルから始まり、レート制限が高くなります。
API はどの TLD をサポートしていますか?
API は、.com、.net、.org、.io、.dev、.app、.co、およびほとんどの gTLD をカバーする RDAP ブートストラップ レジストリにクエリを実行します。 一部の国コード TLD (ccTLD) は RDAP の範囲が限られており、部分的なデータを返す場合があります。
応答に所有者の連絡先フィールドが欠落しているのはなぜですか?
ほとんどのレジストラは、デフォルトで GDPR 準拠のプライバシー保護を適用します。 連絡先の詳細 (名前、電子メール、住所) はレジストリ レベルで編集されます。 API は、RDAP サーバーが提供するもの (レジストラ、日付、ステータス コード、ネームサーバーなど) を返します。これらは常に利用可能です。
ドメインではなく IP アドレスの WHOIS データを検索できますか?
このエンドポイントはドメイン WHOIS のみを処理します。 IP アドレス所有権データ (ASN、ネットワーク組織、CIDR 範囲) については、/v1/ip-whois/lookup エンドポイントを使用します。

botoiで開発を始めよう

150以上のAPIエンドポイント。検索、テキスト処理、画像生成、開発者ユーティリティに対応。無料プラン、クレジットカード不要。