ツール
入力
結果
結果はここに表示されます。DNS は ASCII しか扱えないため、münchen.de や 中国.公司 のようなドメインは xn--mnchen-3ya.de や xn--fiqs8s.xn--55qx5d として送られます。DNS レコード、TLS 証明書、nginx のサーバー名、メールを設定するときには xn-- 形式に出会い、ログに xn-- ドメインが現れたときには読める形が必要になります。この変換ツールは、Node.js に長年同梱されていた実装である punycode.js を使い、ラベルごとに双方向の変換を行います。URL とメールアドレスではドメインだけを変換するため、パス、クエリ文字列、@ より前の部分はそのまま残ります。
動作のしくみ
- 1 行に 1 つのドメイン、URL、メールアドレスを書きます。自動モードでは、xn-- ラベルを含む行は Unicode に、それ以外は Punycode に変換されます。
- エンコードの前に名前を小文字にして正規化し、句点 。 をドットとして読みます。これはブラウザーが入力されたドメインに対して行う処理と同じです。
- 63 文字を超えるラベル、253 文字を超える名前、ラテン文字とキリル文字またはギリシャ文字が混在するラベルには警告が出ます。
- ASCII だけのドメインはそのまま通過し、URL 内の IPv6 リテラルには手を加えません。
データの行き先
どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。
このツールは無料で登録不要です。結果は開いているページの中にだけあり、どこにも保存されません。
必要なポイント
このツールは無料です。ログインもポイントも必要ありません。
よくある質問
- ホモグラフ攻撃とは何ですか?
- 有名なドメインに似ているものの、別の文字体系の文字を使ったドメインを登録する手口です。たとえば、ラテン文字の a の代わりにキリル文字の а を使った аpple.com です。画面上ではほとんど同じに見えますが、Punycode では違いがはっきりします(xn--pple-43d.com)。このツールは、最もよくある手口であるラテン文字とキリル文字・ギリシャ文字の混在ラベルを警告します。ブラウザーも疑わしい名前には xn-- 形式を表示します。
- URL エンコードと同じものですか?
- いいえ。URL エンコード(パーセントエンコーディング)はパスとクエリ文字列のためのもので、ü は %C3%BC になります。Punycode はドメイン名専用で、URL のうち Punycode で変換されるのはホスト部分だけです。アドレスの残りの部分には、このサイトの URL エンコーダーを使ってください。
- IDNA 2008 / UTS #46 の処理を完全に行いますか?
- すべてではありません。小文字化、Unicode 正規化(NFC)、句点の変換を行い、実際に登録される名前はこれでカバーできます。UTS #46 のすべてのマッピングを適用するわけではなく、レジストリが拒否するすべての文字を弾くわけでもないため、ここで変換できた名前でもレジストラーに拒否されることがあります。
背後にあるオープンソース
このツールは mathiasbynens/punycode.js(MIT)の上で動作しています。同じ処理を自分のプログラムに組み込みたい場合は、そのライブラリを使ってください。
mathiasbynens/punycode.js別の呼び方
- punycode 変換
- 日本語ドメイン punycode
- idn 変換
- punycode デコード
- xn-- 変換
- ホモグラフ攻撃 ドメイン