ドメイン移管の前に確認すること|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で取得できなかった
本記事は公開情報を読み取る方法の説明です。他人のドメインを繰り返し調べないでください。


