国際化ドメインをPunycodeに変換する

日本語.jpやmünchen.de。DNSはASCIIしか話せないため、Unicodeラベルはxn--の文字列で動きます。エンコードの裏側の本当の名前を確認します。

このガイドで使う道具

やりたいこと

国際化ドメイン名は設定ファイルや証明書、DNSレコードでxn--…の形で現れます。各ラベルをPunycode(RFC 3492)に変換するのがUnicode名をDNSで運ぶ仕組みで、逆にエンコードされた不審なxn--文字列が実際に何を言っているかを解読します。

使い方

ドメインを貼り付け(Unicodeラベルでもxn--ラベルでも)、方向を選んで変換します。ドット区切りの各ラベルを独立して処理するので、ASCIIとUnicodeが混在しても構いません。

  • xn--プレフィックスが付くのは非ASCII文字を含むラベルだけで、ASCIIのみのラベルはそのままです。
  • 全角のドット(。と.)も区切りとして扱うので、日本語テキストからの貼り付けも解析できます。

具体例

bücher.exampleはDNS用にxn--bcher-kva.exampleになり、xn--wgv71a119e.jpは日本語.jpに戻ります。証明書やフィッシングメールがエンコード形の裏に隠れている時に役立ちます。

注意点

ラベル単位のPunycode変換であり、完全なURLパーサーではありません。パスやクエリはエラーになります。ラベルはDNSが大小区別しないため小文字化します。類似ドメインの検出はなく、解読した紛らわしいドメインは人が確認してください。