ドメイン移管の前に確認すること|RDAPで60日・期限15日・ロックを自動で調べるスクリプト

ドメインを別の会社に移す(移管する)には、取得から60日以上・有効期限まで15日以上・ロックなし・有効期間9年以下など、条件があります。ムームードメインの「ドメイン移管」のページ(確認日:2026年10月21日)に書かれている条件です。このうち、数字で判定できるものは、公開情報のRDAPから自動で確認できます。この記事では、確認するPythonのスクリプトと、筆者のドメインで実行した結果を載せます。

確認する条件と、RDAPで分かること

条件(公式) RDAPで確認 見る項目
取得または移管の完了から60日以上 ○ events の registration(移管があれば transfer)
有効期限が15日以上ある ○ events の expiration
ドメインがロックされていない ○ status の client transfer prohibited
有効期間が9年以下 ○ expiration までの年数
認証コード(AuthCode)が確認できる × 現在の管理業者の画面で確認する

RDAPは、ドメインの登録情報を取得するための標準の仕組みで、https://rdap.org/domain/ドメイン名 に問い合わせると、そのドメインを管理するレジストリのRDAPへ案内されます。ドメインの期限と状態の見方はRDAPで見る登録日・期限・ステータスの記事にあります。

スクリプト(transfer_check.py)

import json, sys, time, urllib.request
from datetime import datetime, timezone

def rdap(domain):
    req = urllib.request.Request(f"https://rdap.org/domain/{domain}",
        headers={"Accept": "application/rdap+json", "User-Agent": "transfer-check/1.0"})
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.loads(r.read().decode())

def dt(s): return datetime.fromisoformat(s.replace("Z", "+00:00"))

def check(domain):
    j = rdap(domain)
    ev = {e["eventAction"]: e["eventDate"] for e in j.get("events", [])}
    status = [s.lower() for s in j.get("status", [])]
    now = datetime.now(timezone.utc)
    start = dt(ev["transfer"]) if "transfer" in ev else dt(ev["registration"])
    exp = dt(ev["expiration"])
    age, left = (now - start).days, (exp - now).days
    locked = any("transfer prohibited" in s for s in status)
    return {"age_days": age, "days_to_expiry": left, "locked": locked,
            "ok": age >= 60 and left >= 15 and not locked and left / 365.25 <= 9}

for d in sys.argv[1:]:
    print(d, check(d)); time.sleep(2)      # 問い合わせの間は2秒空ける

実行は python transfer_check.py example.com のように、ドメイン名を並べます。問い合わせは1ドメインにつき1回で、間を2秒空けています。

筆者のドメインで実行した結果

筆者が運営するサイトのドメイン7つ(.com 3つ・.net 3つ・.me 1つ)で実行しました(2026年10月21日)。ドメイン名は伏せています。

ドメイン 取得から 期限まで ロック 判定
A(.net) 222日 142日 あり ロックを外せば条件を満たす
B(.com) 289日 75日 あり 同上
C(.net) 236日 128日 あり 同上
D(.com) 236日 128日 あり 同上
E(.com) 232日 132日 あり 同上
F(.net) 232日 132日 あり 同上
G(.me) rdap.orgでは取得できませんでした(HTTP 404)

結果の読み方

  • 6つとも、ステータスは「client transfer prohibited」でした。これは、現在の管理業者が付けている移管のロックです。通常の状態で、異常ではありません。移管する時は、現在の管理業者の画面でロックを解除し、認証コードを取得します
  • 期限まで75日のドメインがありました。移管には「期限まで15日以上」が必要です。移管の手続きには3日〜2週間程度かかる(ムームードメインの案内)ので、期限が近い場合は、更新してから移管します。ただし、ムームードメインの案内では、現在の管理業者で更新してから45日以内に移管を申請すると、移管による1年分の延長が付かないため、更新から45日以上あけて申請してください
  • .meはrdap.orgで取得できませんでした。TLDによっては、RDAPのサービスがない、または別の入口が必要です。その場合は、管理業者の画面か、whoisで確認します
  • 期限が近づいた時の備えとして、自動更新の設定と、決済に使うクレジットカードの有効期限を確認します

この記事で確かめていないこと

  • ほかのレジストリ(.jp・.co.jpなど)のRDAPの形式の違い
  • 認証コードの取得、ロックの解除(各管理業者の画面の操作)
  • 他の会社の移管の条件(条件は会社ごとに違います)

ムームードメインの料金・移管の費用はムームードメインの料金にまとめています。

まとめ

  • 移管の条件のうち、取得から60日以上・期限15日以上・ロック・9年以下は、RDAPのスクリプトで確認できる。認証コードは、現在の管理業者の画面で確認する
  • 筆者の.com・.netの6ドメインはすべて、移管ロック(client transfer prohibited)がかかっていた。通常の状態
  • 期限まで75日のものがあり、移管の前に更新が必要かを考える。.meはRDAPで取得できなかった

本記事は公開情報を読み取る方法の説明です。他人のドメインを繰り返し調べないでください。