piapia123
ja

Punycode(IDN)変換

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

日本語・中国語・ドイツ語などの国際化ドメインを Punycode(xn--r8jz45g.jp)に、あるいは xn-- で始まる文字列を読める形に戻します。ブラウザが助けてくれるのは片方向だけです。日本語ドメインを入力すれば符号化してくれますが、xn-- の文字列を渡しても中身は教えてくれません。そして必要になるのはむしろ後者です。文字化けしたドメインを受け取り、クリックする前に正体を知りたい —— まさにその場面です。結果はラベルごとに対応を示すので、どの部分が何になったかが一目で分かります。あわせて 2 つの検査も行います。63 バイトを超えるラベル(DNS の上限で、日本語ドメインはすぐ達します)の指摘と、複数の文字体系が混在するドメイン(аpple の a に見えるキリル文字)の同形異義字リスクの警告です。

機能

  • 双方向に対応:国際化ドメインを xn-- へ、xn-- を読める形へ
  • ラベルごとの対応表で、どの部分が何になったかが分かります
  • 完全な URL ではホスト名だけを変換し、プロトコル・パス・ポート・クエリはそのまま
  • ラベルが 63 バイトを超える場合は DNS の長さ制限を警告
  • ラテン文字とキリル文字・ギリシャ文字が混在するドメインは同形異義字フィッシングのリスクとして警告
  • 日本語入力の句点「。」もピリオドとして扱います
  • ブラウザの IDN 実装と 1 文字単位で一致します(実行時の変換結果と突き合わせて検証済み)

使い方

  1. ドメインまたは完全な URL を貼り付けます(xn-- を含むものは復号、それ以外は符号化)
  2. Unicode 形式と Punycode 形式の両方が表示されます
  3. 判定が違う場合は方向を手動で指定してください
  4. 必要な行は行ごとのコピーボタンで取り出せます

よくある質問

Punycode とは何で、なぜ必要なのですか?
DNS は ASCII 文字しか扱えないため、日本語や中国語のドメインは RFC 3492 に従って xn-- で始まる文字列に符号化してから解決されます。アドレスバーには読める形が表示されますが、実際の問い合わせや証明書で使われるのは Punycode の形です。名前解決の調査、証明書の申請、メールヘッダーの確認で必要になるのはこの文字列です。
同形異義字のリスクとは何ですか?
文字体系が違っても形がほぼ同じ文字があります。キリル文字の а(U+0430)とラテン文字の a がその例です。攻撃者は аpple.com を登録でき、画面上では apple.com と見分けがつかないため、フィッシングに使われます。本ツールはラテン文字とキリル文字・ギリシャ文字が混在する場合に警告します(純粋にラテン文字のみ、キリル文字のみの場合は警告しません)。
ラベルの長さが超過するのはなぜですか?
DNS では 1 つのラベルは 63 バイトまでですが、Punycode に符号化すると長さはおよそ 2 倍になります。漢字・かな 1 文字は 3 バイトで、符号化後は平均 4〜5 文字になります。そのため 15 文字程度のラベルでも 63 バイトを超えることがあります。ブラウザは止めてくれず、解決の段階で失敗します。
入力したドメインは記録されますか?
いいえ。変換はブラウザ内で完結し、ページはリクエストを送りません。ドメイン自体が情報を含むことがあり(社内システムのホスト名など)、それが端末から出ることはありません。

関連ツール