SlideShare a Scribd company logo
超簡単!? Punycode 変換 
~国際化・日本語ドメイン~ 
2014/10/18 
DNS Spa 2014 Autumn 
@otsuka752 (@twovs)
agenda 
• 自己紹介 
• 国際化ドメインの仕組み 
•• 名前解決の方法
• 逆変換してみた(.moe)
about me 
• @otsuka752 (@twovs) 
• ネコ2人+奥さん1人+可愛い娘 
•• 無線LLAANN装置の開発((11999999~~22000044)) 
• オンラインゲームのシステム管理者(2004~) 
• ただし,ゲームには全く興味無し 
• ZFS 最高!!! beadm 便利!!!
国際化ドメイン 
インターネットで使われるドメイン名にアル 
ファベットや数字以外に漢字、アラビア文字、 
キリル文字、ギリシア文字なども使えるように
する仕組み。 
日本語であれば日本語ドメイン名とも呼ばれる。 
抜粋) http://ja.wikipedia.org/wiki/国際化ドメイン名
国際化ドメイン名の例 
• 例えば下記のURL のドメイン名 
• http://日本語.jp/ (.jp は半角) 
•• hhttttpp::////日本語。jjpp// ((。jjpp は全角)) 
• http://浸透いうな.moe/
国際化ドメイン名の例 
• 下記URL のドメイン名は使えない 
• http://日本。。jp/ 
•• hhttttpp::////日本_。jjpp// 
• http://浸透いうな!.moe/
仕組みの概要 
• DNS の仕組みは通常通り 
• Web ブラウザなどのアプリケーションが頑張る 
1. 文字列を正規化 
2. 7bit ASCII 文字列への変換 
3. 通常通りDNS で名前解決
1.文字列の正規化 
• 一定の標準形に正規化(NAMEPREP) 
• たとえば、全角の「。」は半角の「.」に 
•• 全角の「jjpp」は半角の「jjpp」に
• アルファベットの大文字は全て小文字に 
日本語。jp => 日本語.jp
2. 7bit ASCII 文字列への変換 
• 正規化された文字列を 
Punycode(ピュニコード)(後述)で符号化 
•• 既存のDDNNSS の仕組みに合わせた
7bit ASCII 文字列に変換 
日本語.jp => xn--wgv71a119e.jp
3.通常通りDNS で名前解決 
• ここから先は通常通り… 
xn--wgv71a119e.jjpp ==>> 119922..00..22..11 ((例))
国際化ドメイン名の例 
• 下記URL のドメイン名は使えない 
• http://日本。。jp/ ‘.’ dot が連続 
•• hhttttpp::////日本_。jjpp// ‘‘__’’ uunnddeerrssccoorree 
• http://浸透いうな!.moe/ ‘!’ exclamation 
• ‘,’全角カンマは使えない 
‘、’全角読点は使える
Punycode(ピュニコード) 
国際化ドメイン名で使われる文字符号化方式で、 
RFC 3492 で定義されている。 
UUnniiccooddee で書かれた文字列をDDNNSS内の制限された
文字コード空間でも使えるようにするための方 
式で、ユーザーエージェントの実装に依存する。 
抜粋) http://ja.wikipedia.org/wiki/Punycode
変換・逆変換する方法 
• RFC3492 
Punycode: A Bootstring encoding of Unicode 
for Internationalized Domain Names in Applications (IDNA) 
http://tools.ietf.org/html/rfc3492 
• libidn - GNU IDN Library 
C/C++/C#/Java API/Emacs API 
http://www.gnu.org/software/libidn/
変換・逆変換する方法 
• JPRS 
日本語JPドメイン名のPunycode 変換・逆変換 
http://punycode.jp/ 
※日本語JP ドメインだけでなく 
任意の文字列をencode/decode
簡単!? 変換・逆変換 
$ curl -F 'str=XN--68J9BUB3E.moe' http://(snip).jp/ 
(snip) 
<tr><td>正規化後</td><td>:</td><td>しまぱん.moe</td></tr> 
<tr><td>Punycode</td><td>:</td><td>xn--68j9bub3e.moe</td></tr> 
(snip) 
$ wget -O - --post-data='str=しまぱん.moe' http://(snip).jp/ 
(snip) 
<tr><td>正規化後</td><td>:</td><td>しまぱん.moe</td></tr> 
<tr><td>Punycode</td><td>:</td><td>xn--68j9bub3e.moe</td></tr> 
(snip)
逆変換してみた(.moe) 
• 気まぐれにDNSSEC walk してみた方が!? 
http://www.e-ontap.com/blog/20140924.html 
http://www.e-ontap.com/misc/moe.txt 
• 気まぐれに逆変換してみた 
http://www.slideshare.net/twovs/moe-39625501
.moe ドメイン一部抜粋 
ヒーローズ.moe XN--0CK4B4DTCB.moe 
先生.moe XN--44QR78F.moe 
さん.moe XN--48JWG.moe 
シテラさん.moe XN--48JWG5DOCWJ.moe 
しまぱん.moe XN--68J9BUB3E.moe 
秋葉原.moe XN--8MR310GI6G.moe 
百合.moe XN--8PRV51F.moe 
耳.moe XN--BY0A.moe 
真姫.moe XN--BYS929D.moe 
西木野真姫.moe XN--BYSX12ALOMT1R5PJ.moe
END

More Related Content

What's hot

Hard-Disk
Hard-DiskHard-Disk
Hard-Disk
Na Da
 
DNS 入門
DNS 入門DNS 入門
DNS 入門
Sho A
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Masahiro NAKAYAMA
 
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
Takamasa Sakai
 
中国地方Db勉強会
中国地方Db勉強会中国地方Db勉強会
中国地方Db勉強会
Soudai Sone
 
ゲームキャストDiscord 1周年放送
ゲームキャストDiscord 1周年放送ゲームキャストDiscord 1周年放送
ゲームキャストDiscord 1周年放送
壽久 寺島
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
 
OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料
Chika SATO
 
Postgre sqlから見るnosql
Postgre sqlから見るnosqlPostgre sqlから見るnosql
Postgre sqlから見るnosql
Soudai Sone
 

What's hot (12)

Hard-Disk
Hard-DiskHard-Disk
Hard-Disk
 
DNS 入門
DNS 入門DNS 入門
DNS 入門
 
Osh2014
Osh2014Osh2014
Osh2014
 
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
 
Nas
NasNas
Nas
 
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
 
中国地方Db勉強会
中国地方Db勉強会中国地方Db勉強会
中国地方Db勉強会
 
ゲームキャストDiscord 1周年放送
ゲームキャストDiscord 1周年放送ゲームキャストDiscord 1周年放送
ゲームキャストDiscord 1周年放送
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 
OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料OSC北海道2014_JPUG資料
OSC北海道2014_JPUG資料
 
Postgre sqlから見るnosql
Postgre sqlから見るnosqlPostgre sqlから見るnosql
Postgre sqlから見るnosql
 

More from @ otsuka752

NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53
@ otsuka752
 
OLD_LT_DNS_OLD
OLD_LT_DNS_OLDOLD_LT_DNS_OLD
OLD_LT_DNS_OLD
@ otsuka752
 
OLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLDOLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLD
@ otsuka752
 
Hijack the domain name
Hijack the domain nameHijack the domain name
Hijack the domain name
@ otsuka752
 
Route53 で親子同居
Route53 で親子同居Route53 で親子同居
Route53 で親子同居
@ otsuka752
 
reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)
@ otsuka752
 
DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)
@ otsuka752
 
raspi + soracom #pakeana33
raspi + soracom #pakeana33raspi + soracom #pakeana33
raspi + soracom #pakeana33
@ otsuka752
 
192.0.0.4 on android
192.0.0.4 on android192.0.0.4 on android
192.0.0.4 on android
@ otsuka752
 
a little more about CaptureFilter
a little more about CaptureFiltera little more about CaptureFilter
a little more about CaptureFilter
@ otsuka752
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定
@ otsuka752
 
how to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorturehow to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorture
@ otsuka752
 
how to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servershow to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servers
@ otsuka752
 
WireEdit のススメ
WireEdit のススメWireEdit のススメ
WireEdit のススメ
@ otsuka752
 
Measurement of Maximum new NAT-sessions per second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packetsMeasurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessions per second / How to send packets
@ otsuka752
 
about tcpreplay-edit
about tcpreplay-editabout tcpreplay-edit
about tcpreplay-edit
@ otsuka752
 
萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)
@ otsuka752
 
about Tcpreplay
about Tcpreplayabout Tcpreplay
about Tcpreplay
@ otsuka752
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
@ otsuka752
 

More from @ otsuka752 (20)

NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53NS & NSID of Amazon Route 53
NS & NSID of Amazon Route 53
 
OLD_LT_DNS_OLD
OLD_LT_DNS_OLDOLD_LT_DNS_OLD
OLD_LT_DNS_OLD
 
OLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLDOLD_Lt traffic analyse_OLD
OLD_Lt traffic analyse_OLD
 
Hijack the domain name
Hijack the domain nameHijack the domain name
Hijack the domain name
 
Route53 で親子同居
Route53 で親子同居Route53 で親子同居
Route53 で親子同居
 
reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)reusable delegation set のススメ (Route53)
reusable delegation set のススメ (Route53)
 
DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)DNS64 (El capitan and unbound-1.5.1)
DNS64 (El capitan and unbound-1.5.1)
 
raspi + soracom #pakeana33
raspi + soracom #pakeana33raspi + soracom #pakeana33
raspi + soracom #pakeana33
 
192.0.0.4 on android
192.0.0.4 on android192.0.0.4 on android
192.0.0.4 on android
 
a little more about CaptureFilter
a little more about CaptureFiltera little more about CaptureFilter
a little more about CaptureFilter
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定
 
how to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorturehow to defend DNS authoritative server against DNS WaterTorture
how to defend DNS authoritative server against DNS WaterTorture
 
how to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servershow to decrypt SSL/TLS without PrivateKey of servers
how to decrypt SSL/TLS without PrivateKey of servers
 
WireEdit のススメ
WireEdit のススメWireEdit のススメ
WireEdit のススメ
 
Measurement of Maximum new NAT-sessions per second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packetsMeasurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessions per second / How to send packets
 
about tcpreplay-edit
about tcpreplay-editabout tcpreplay-edit
about tcpreplay-edit
 
萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)萌え萌えドメイン名一覧(.moe)
萌え萌えドメイン名一覧(.moe)
 
about Tcpreplay
about Tcpreplayabout Tcpreplay
about Tcpreplay
 
パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由パケットが教えてくれた ルートサーバが 13個の理由
パケットが教えてくれた ルートサーバが 13個の理由
 
how to GET GET
how to GET GEThow to GET GET
how to GET GET
 

Recently uploaded

ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 

Recently uploaded (10)

ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 

超簡単!? Punycode 変換 ~国際化・日本語ドメイン~

  • 1. 超簡単!? Punycode 変換 ~国際化・日本語ドメイン~ 2014/10/18 DNS Spa 2014 Autumn @otsuka752 (@twovs)
  • 2. agenda • 自己紹介 • 国際化ドメインの仕組み •• 名前解決の方法 • 逆変換してみた(.moe)
  • 3. about me • @otsuka752 (@twovs) • ネコ2人+奥さん1人+可愛い娘 •• 無線LLAANN装置の開発((11999999~~22000044)) • オンラインゲームのシステム管理者(2004~) • ただし,ゲームには全く興味無し • ZFS 最高!!! beadm 便利!!!
  • 4. 国際化ドメイン インターネットで使われるドメイン名にアル ファベットや数字以外に漢字、アラビア文字、 キリル文字、ギリシア文字なども使えるように する仕組み。 日本語であれば日本語ドメイン名とも呼ばれる。 抜粋) http://ja.wikipedia.org/wiki/国際化ドメイン名
  • 5. 国際化ドメイン名の例 • 例えば下記のURL のドメイン名 • http://日本語.jp/ (.jp は半角) •• hhttttpp::////日本語。jjpp// ((。jjpp は全角)) • http://浸透いうな.moe/
  • 6. 国際化ドメイン名の例 • 下記URL のドメイン名は使えない • http://日本。。jp/ •• hhttttpp::////日本_。jjpp// • http://浸透いうな!.moe/
  • 7. 仕組みの概要 • DNS の仕組みは通常通り • Web ブラウザなどのアプリケーションが頑張る 1. 文字列を正規化 2. 7bit ASCII 文字列への変換 3. 通常通りDNS で名前解決
  • 8. 1.文字列の正規化 • 一定の標準形に正規化(NAMEPREP) • たとえば、全角の「。」は半角の「.」に •• 全角の「jjpp」は半角の「jjpp」に • アルファベットの大文字は全て小文字に 日本語。jp => 日本語.jp
  • 9. 2. 7bit ASCII 文字列への変換 • 正規化された文字列を Punycode(ピュニコード)(後述)で符号化 •• 既存のDDNNSS の仕組みに合わせた 7bit ASCII 文字列に変換 日本語.jp => xn--wgv71a119e.jp
  • 10. 3.通常通りDNS で名前解決 • ここから先は通常通り… xn--wgv71a119e.jjpp ==>> 119922..00..22..11 ((例))
  • 11. 国際化ドメイン名の例 • 下記URL のドメイン名は使えない • http://日本。。jp/ ‘.’ dot が連続 •• hhttttpp::////日本_。jjpp// ‘‘__’’ uunnddeerrssccoorree • http://浸透いうな!.moe/ ‘!’ exclamation • ‘,’全角カンマは使えない ‘、’全角読点は使える
  • 12. Punycode(ピュニコード) 国際化ドメイン名で使われる文字符号化方式で、 RFC 3492 で定義されている。 UUnniiccooddee で書かれた文字列をDDNNSS内の制限された 文字コード空間でも使えるようにするための方 式で、ユーザーエージェントの実装に依存する。 抜粋) http://ja.wikipedia.org/wiki/Punycode
  • 13. 変換・逆変換する方法 • RFC3492 Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) http://tools.ietf.org/html/rfc3492 • libidn - GNU IDN Library C/C++/C#/Java API/Emacs API http://www.gnu.org/software/libidn/
  • 14. 変換・逆変換する方法 • JPRS 日本語JPドメイン名のPunycode 変換・逆変換 http://punycode.jp/ ※日本語JP ドメインだけでなく 任意の文字列をencode/decode
  • 15. 簡単!? 変換・逆変換 $ curl -F 'str=XN--68J9BUB3E.moe' http://(snip).jp/ (snip) <tr><td>正規化後</td><td>:</td><td>しまぱん.moe</td></tr> <tr><td>Punycode</td><td>:</td><td>xn--68j9bub3e.moe</td></tr> (snip) $ wget -O - --post-data='str=しまぱん.moe' http://(snip).jp/ (snip) <tr><td>正規化後</td><td>:</td><td>しまぱん.moe</td></tr> <tr><td>Punycode</td><td>:</td><td>xn--68j9bub3e.moe</td></tr> (snip)
  • 16. 逆変換してみた(.moe) • 気まぐれにDNSSEC walk してみた方が!? http://www.e-ontap.com/blog/20140924.html http://www.e-ontap.com/misc/moe.txt • 気まぐれに逆変換してみた http://www.slideshare.net/twovs/moe-39625501
  • 17. .moe ドメイン一部抜粋 ヒーローズ.moe XN--0CK4B4DTCB.moe 先生.moe XN--44QR78F.moe さん.moe XN--48JWG.moe シテラさん.moe XN--48JWG5DOCWJ.moe しまぱん.moe XN--68J9BUB3E.moe 秋葉原.moe XN--8MR310GI6G.moe 百合.moe XN--8PRV51F.moe 耳.moe XN--BY0A.moe 真姫.moe XN--BYS929D.moe 西木野真姫.moe XN--BYSX12ALOMT1R5PJ.moe
  • 18. END