DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
サイトとメールの引っ越し判定。DNS の判定はブラウザで動き、サイトの中身だけを Cloudflare Workers で読む
翻译准备中
正在加载完整 README。
查看完整 README ↗今のレンタルサーバーから、サイトとメールを移せるかを無料で判定するツールです。サイトの移し先は Cloudflare、メールの移し先は Google Workspace などを考えています。URL を入れると、Cloudflare に移せるか、メールの置き場所、サイトの作り、管理画面が外から開けるかが分かり、持ち主がやる手順が出ます。
公開版: https://check.prime-beat.com (ベータ版。運営は Prime Beat株式会社)
無料の判定は、すべて利用者のブラウザの中で動きます。運営のサーバーには、件数のほかは何も届きません。
| 判定の部分 | 動く場所 | 届く先 |
|---|---|---|
| DNS・メール・SPF・DKIM・DMARC | 利用者のブラウザ(public/lib/dns-checks.js) | Cloudflare の公開 DNS(cloudflare-dns.com) |
| ドメインの登録事業者と移管のロック | 利用者のブラウザ(同上) | IANA と、そのドメインの登録所の RDAP。.jp は問い合わせない |
| サイト作成サービスか、Cloudflare を通っているか | 利用者のブラウザ(同上) | DNS の向き先(CNAME と IP の範囲)で見るので、どこにも新しく問い合わせない |
| WordPress か | 利用者のブラウザ(public/app.js) | そのサイトから WordPress の画像を1つ読み込めるかで見る |
| 判定の規則(型と手順を決める部分) | 利用者のブラウザ(public/lib/verdict.js) | どこにも送らない |
| PHP の版と管理画面(有料の手順書のみ) | 運営のサーバー(src/site-checks.js、Cloudflare Workers) | DNS に確認の値を足して持ち主だと確かめたドメインだけ。サーバーはそのサイトに最大5回アクセスする |
PHP の版と管理画面はサーバーでしか読めません。ブラウザは CORS の決まりで、他のサイトの HTML とヘッダーを読めないためです。持ち主の同意が無いサイトを運営のサーバーが調べると、調べた記録が相手に残ります。そのため、持ち主の確認(src/owner.js)を済ませたドメインだけを調べます。
確かめる方法は3つあります。
配られているファイルを見比べる。 画面の下に、いま動いている版のコミットが出ます。リポジトリを手元に取ってきて次を実行すると、公開版が配っている画面のファイル(public/ の中身)と、そのコミットのファイルをハッシュで見比べます
npm run verify
通信を見る。 ブラウザの開発者ツールのネットワーク欄で、どこに何を送っているかを見られます。無料の判定で運営のサーバーに届くのは /api/event(件数)と、画面の表示に使う /api/version・/api/report/status だけです
全部を手元で動かす。 運営のサーバーを使わずに、PHP の版と管理画面を含む同じ判定を手元のパソコンで動かせます
サーバーで動いているコードが公開のものと同じことは、Cloudflare Workers の仕組みの上では証明できません。そのため、サーバーに任せるのは、持ち主の同意を得たサイトの詳しい調べだけにしています。
Node.js 22 以上。
npm install
npm test
npm run check -- example.co.jp
npm run check は、判定のすべて(DNS と、PHP の版・管理画面を含むサイトの中身)を手元のパソコンから行い、結果を JSON で出します。運営のサーバーは使いません。自分が管理しているサイトに使ってください。
画面ごと手元で動かすときは次のコマンドで、http://localhost:8790/ を開きます。
npm run dev
wrangler.jsonc の routes を自分のドメインに書き換えて、npx wrangler deploy を実行します。持ち主の確認と詳しい調べを使うときは npx wrangler secret put OWNER_SECRET で秘密の値を入れ、決済を使わないなら PAYMENT_REQUIRED を false にします。Durable Objects は SQLite を使う型なので、Workers の Free プランでも動きます。件数を見たいときは npx wrangler secret put STATS_TOKEN で合言葉を入れ、STATS_URL=<公開先> npm run stats で見ます。合言葉を入れなければ件数の画面は 404 を返します。
| 調べること | 使うもの |
|---|---|
| Cloudflare に移管できるか | ドメインの末尾と、Cloudflare の TLD Policies から取り出した一覧(public/lib/tlds.js、取り出した日を書いてある)。.jp は移管できない |
| DNS の置き場所、すでに Cloudflare か | NS |
| 登録事業者、登録日、移管のロック | IANA の一覧から引いた登録所の RDAP |
| メールの置き場所 | MX と、MX の IP がサイトと同じか |
| SPF・DKIM・DMARC | TXT。DKIM はよく使われるセレクタ(google、selector1、selector2、default、k1)だけを見る |
| サイトの作り | トップページへの GET 1回。CMS とサイト作成サービスの目印、サーバーで動くプログラムの目印(PHP のヘッダー、セッションの Cookie、.php などへのリンク) |
| PHP の版 | 応答のヘッダー。JPCERT/CC の注意喚起 JPCERT-AT-2026-0033 の修正版と比べる |
| 管理画面が外から開けるか | /wp-login.php・/wp-admin/(WordPress のときだけ)、/administrator/、/admin/ への GET。パスワードの入力欄があれば「公開」 |
| 型 | 条件 |
|---|---|
| 型A: 静的サイトの可能性 | サーバーで中身を読んで、どの目印も無い(手元のコマンドと手順書) |
| 型B: CMS の名前 | CMS の目印がある |
| 型C: サイト作成サービス | Wix・Shopify などの目印がある。ネームサーバーを変えられないことが多く、移行の対象外 |
| 型を確かめる必要がある | CMS の目印は無いが、サーバーで動くプログラムの目印がある(手元のコマンドと手順書) |
| 作りは確かめていない | ブラウザだけの無料の判定で、WordPress とサイト作成サービスのどちらの目印も無い |
| 型を判定できない | ボット対策の確認画面やエラーで中身を読めない(確認画面は突破しない) |
| すでに Cloudflare に移っている | DNS もサイトも Cloudflare |
判定の規則は tests/ のテストで確かめられます。
| 守り | 中身 |
|---|---|
| 接続元ごとの回数 | 1分に10回まで。接続元ごとに Durable Object を1つ割り当て、直近60秒の回数をメモリで数える(IPv6 は /64 単位) |
| 同じドメインへの回数 | 1分に6回まで(Workers の Rate Limiting) |
| 結果の使い回し | 同じドメインのサイトの結果を10分使い回す |
| 調べられる側への配慮 | User-Agent に PrimeBeat-migration-check とこのリポジトリの URL を入れる |
| 手元や社内の機械を指す入力 | IP の直書き、localhost などの名前、私用の IP に解決される名前、私用の IP へのリダイレクトを断る |
| 画面 | スクリプトは同じ場所のファイルだけを読む CSP。frame-ancestors 'none'、nosniff、no-referrer |
日ごとの件数だけです。判定の型、メールの引っ越しが要ったか、相談のリンクが押されたか。ドメインと接続元は含みません(src/stats.js)。
npm run deploy
作業ツリーが綺麗で、GitHub に push 済みのコミットだけをデプロイし、そのコミットを画面に出します。
MIT ライセンス。LICENSE を見てください。お問い合わせ: Prime Beat株式会社 [email protected]