多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーシ

Similar documents
日本語ドメイン名運用ガイド

いまさら聞けない日本語ドメイン名

AquesTalk for WinCE プログラミングガイド

PowerPoint Presentation

BSDソケットによるIPv6プログラミングを紐解く

7th CodeGear Developer Camp

Webサービス, 軽量プログラミング言語のIPv6対応Perl編

情報ネットワーク演習 2006年10月5日

情報ネットワーク演習 2007 年 10 月 11 日 ( 木 )

1013  動的解析によるBOTコマンドの自動抽出

システムインテグレータのIPv6対応

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Microsoft Word - SE第15回.doc

Microsoft Word - Cプログラミング演習(12)

DNSサーバー設定について

説明書

AquesTalk プログラミングガイド

Mobile Access簡易設定ガイド

Microsoft PowerPoint pptx

AquesTalk2 Mac マニュアル

使用する前に

Microsoft PowerPoint - lec10.ppt

AquesTalk Win Manual

目次 第 1 章はじめに... 3 第 2 章ネットワーク設定 DNS の設定 アウトバウンド HTTPS 接続の許可 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール

学生実験 3 日目 DNS IP ネットワークアーキテクチャ 江崎研究室

02: 変数と標準入出力

◎phpapi.indd

目次 1. DB 更新情報受信 SW 仕様書 構成および機能 全体の構成 DB 更新情報受信 SW の機能 ソフトウェアの設計仕様 DB 更新情報受信 SW の仕様 資料編... 5

講習No.9

Prog1_10th

文字コード略歴 よこやままさふみ社内勉強会 2012/05/18 文字コード略歴 Powered by Rabbit 2.0.6

02: 変数と標準入出力

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

02: 変数と標準入出力

02: 変数と標準入出力

マニュアル訂正連絡票

24th Embarcadero Developer Camp

目次 1 本マニュアルについて 設定手順 (BIND 9 利用 ) 設定例の環境 設定例のファイル構成 named.conf の設定例 逆引きゾーンの設定例 動作確認 ( ゾーン転送 )

商用監視ソフトウェアユーザの Zabbix 移行へ朗報 Zabbix Event Viewer のご紹介 【本邦初公開】

AquesTalk2 Linux マニュアル

VB実用Ⅲ⑩ フリーデータベースⅡ

学生実験

SOC Report

本当はこわいエンコーディングの話 とみたまさひろ 東京 Ruby 会議 本当はこわいエンコーディングの話 Powered by Rabbit 2.0.6

WL-RA1Xユーザーズマニュアル

AquesTalk10 Win マニュアル

PowerPoint プレゼンテーション

JPNIC からの報告 [II] 国際化ドメイン名 (IDN) と DNS の適切な設定に向けて 2002 年 12 月 20 日小島育夫 社団法人日本ネットワークインフォメーションセンター

slide5.pptx

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

Android Layout SDK プログラミング マニュアル

アプリケーション開発ガイド クレンジング編

Microsoft Word - koutiku-win.doc

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス

モバイルアプリを Azure で作る - データを扱う Azure Storage を利 してデータを保存する 本稿では PHP と Windows Azure を使って 画像などのファイルを扱うアプリケーションを開発する方法を説明します Windows Azure Platform では データの

SideAceユーザーズガイド

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

AquesTalk Mac マニュアル

LGWAN-1.indd

Oracle SALTを使用してTuxedoサービスをSOAP Webサービスとして公開する方法

SOC Report

Sylpheed とは オープンソースのメールソフト ライセンスは GPL+LGPL 高速 軽量 高機能 高い操作性 高い信頼性 導入が容易 マルチプラットフォーム Windows, Linux, etc. 多言語対応 ( 約 30 ヶ国語 )

文字列検索ユーティリティ使用の手引き

1 TCP/IPがインストールされていて正常に動作している場合は ループバックアドレィング5.3 ネットワークのトラブルシューティング スでリプライが返ってきます リプライが返ってこない場合 なんらかの原因でサービスが無効になっていたり TCP/IPプロトコルが壊れていたりする可能性があります 2

VPN ユーザを管理し、RV016、RV042、RV042G および RV082 VPN ルータの速い VPN を設定して下さい

02: 変数と標準入出力

intra-mart EX申請システム version.7.2 事前チェック

PowerPoint Presentation

ビジネスサーバ設定マニュアル_ssh_ftp編(VPS・Pro)

02: 変数と標準入出力

Cuoreテンプレート

自己紹介 名前 : 一ノ瀬太樹 所属 : HASH コンサルティング株式会社 OWASP Japan プロモーションチーム OWASP ZAP ユーザーグループ脆弱性診断研究会 ( 管理者その 3) Perl 入学式 ( サポーター ) HASH Consult

情報通信の基礎

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

Caché スタジオに関するよくある質問

Getting Start mdc (Mail Destination Confirm) Getting Start mdc (Mail Destination Confirm) Rev /11/3 目次 Getting Start mdc (Mail Destination Con

Windows Graphic Loader for Label Printers

AquesTalk2 Win マニュアル

Microsoft Word - Training10_プリプロセッサ.docx

02: 変数と標準入出力

改訂履歴 版数日付変更理由変更内容変更者 1.0 H29/2/1 新規作成 1.0 版作成 -2-

02: 変数と標準入出力

Microsoft Word _001b_hecmw_PC_cluster_201_howtodevelop.doc

実験 6 通信基礎実験 1 目的 ネットワークを通じてデータ転送を行うことを体験的に学ぶために 本実験ではT CP/IPプロトコルを使い ワークステーション間で通信を行うクライアントサーバモデルのプログラムを作成する 2 解説 1 ネットワークとプロトコルネットワーク ( コンピュータネットワーク

Mobile Access IPSec VPN設定ガイド

C言語講座 ~ファイル入出力編~

intra-mart e-Builder ver 5

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

LEAP を使用して Cisco ワイヤレス クライアントを認証するための Funk RADIUS の設定

Taro-82ADAカ.jtd

「ビジネスサーバ」シリーズ設定マニュアル

slide6.pptx

プロキシ Pac ファイルとそのサンプルについて

Microsoft PowerPoint - char-1605temp.ppt [互換モード]

Microsoft Word - index.html

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 文字列 文字列リテラル プログラムの中で文字列を表す方法は幾つか有るが 基本的な方法は下記の 2 種で有る 対象と成る文字の集まりをダブルクオーテーション ( " ) で囲うか シングルクオーテーション ( ' ) で囲う PYTHON3 "

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

スライド 1

Transcription:

多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA ishisone@sra.co.jp 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーションを多言語ドメイン対応させるためのツール群 フリーソフトウェア 2001/12/04 日本語ドメイン名解説 / mdnkit 2 1

mdnkit の構成 mdnconv mdnsproxy BIND-9 パッチ runmdn MDN ライブラリ (libmdn) 標準 C ライブラリ iconv 2001/12/04 日本語ドメイン名解説 / mdnkit 3 MDN ライブラリ (libmdn) mdnconv mdnsproxy BIND-9 パッチ runmdn MDN ライブラリ (libmdn) 標準 C ライブラリ iconv 2001/12/04 日本語ドメイン名解説 / mdnkit 4 2

MDN ライブラリ (libmdn) 多言語ドメイン名処理の基本機能を提供するライブラリ エンコード変換 正規化 (NAMEPREP) ローカライズ機能 現在有力な標準化提案である IDNA/NAMEPREP/ACE に従い アプリケーションが利用できる API を提供 2001/12/04 日本語ドメイン名解説 / mdnkit 5 標準化提案への対応 正規化 (NAMEPREP) 国際化ドメイン名を正規化する エンコーディング (ACE) 正規化した名前をエンコーディング変換し ASCII 文字から構成される文字列に変換する アーキテクチャ (IDNA) 以上の処理をアプリケーションの中で実施する 2001/12/04 日本語ドメイン名解説 / mdnkit 6 3

IDNA/NAMEPREP/ACE IDNA ユーザ アプリケーション 正規化 エンコーディング変換 NAMEPREP ACE ライブラリ ( 名前解決等 ) DNS サーバ 2001/12/04 日本語ドメイン名解説 / mdnkit 7 アプリケーションでの処理 例 : 日本語ドメイン名の名前解決 1. ユーザが入力したドメイン名を受け取る 2. ドメイン名を正規化する 3. さらに ACE エンコーディングに変換する 4. 変換したドメイン名を名前解決用関数に渡して IPアドレスを検索する MDNライブラリでは2. と3. の処理を行うシンプルなAPIを提供 2001/12/04 日本語ドメイン名解説 / mdnkit 8 4

シンプル API 初期化 エンコード デコードの 3 つ IDNA/NAMEPREP/ACE に準拠 パラメータは設定ファイルから読み込み アプリケーションで指定する必要なし 処理の一部をスキップすることができる アプリケーションにとって不要な処理を省略することが可能 2001/12/04 日本語ドメイン名解説 / mdnkit 9 mdn_nameinit(void) 初期化 ( 省略可能 ) API mdn_encodename(int actions, const char *name, char *to, size_t tolen) エンコード (DNS に渡す名前に変換 ) mdn_decodename(int actions, const char *name, char *to, size_t tolen) デコード (DNS から渡される名前を変換 ) 2001/12/04 日本語ドメイン名解説 / mdnkit 10 5

デコードNAMEPREP 検査 ンコードACE に変換されたドメイン名エ処理プロセス ローカルエンコーディングのドメイン名 ローカル UTF 変換ローカルマッピング NAMEPREP UTF ACE 変換 UTF ローカル変換 ACE UTF 変換 2001/12/04 日本語ドメイン名解説 / mdnkit 11 アプリケーションの書き方 1 2 3 4 ソース先頭で <mdn/api.h> をインクルード ( アプリケーションの初期化時に mdn_initname() で初期化 ) 名前解決の関数を呼ぶ前に mdn_encodename() でエンコード 名前解決関数から返ってきた名前を mdn_decodename() でデコード 2001/12/04 日本語ドメイン名解説 / mdnkit 12 6

サンプルプログラム #include <mdn/api.h> mdn_result_t result; char acename[namesize]; char localname[namesize]; struct hostent *hp; result = mdn_encodename(mdn_encode_app, input, acename, sizeof(acename)); if (result!= mdn_success) { /* error handling */ exit(1); } 2001/12/04 日本語ドメイン名解説 / mdnkit 13 サンプルプログラム ( 続 ) hp = gethostbyname(acename); if (hp == NULL) { /* error handling */ exit(1); } result = mdn_decodename(mdn_decode_app, hp->h_name, localname, sizeof(localname)); if (result!= mdn_success) { /* error handling */ exit(1); } 2001/12/04 日本語ドメイン名解説 / mdnkit 14 7

Perl バインディング MDN ライブラリの機能を Perl 言語から呼び出すためのモジュール C 言語 API とほぼ同等の機能を提供 2001/12/04 日本語ドメイン名解説 / mdnkit 15 Use MDN::API; Use IO::Socket::INET; サンプルスクリプト my $local_name = 日本語. ドメイン名.jp ; # 正規化とエンコーディング変換を行う my $idn_name = MDN::API->encode_name($local_name); # ソケットを作成して接続する my $sock = IO::Socket::INET->new( Proto => tcp, PeerAddr => $idn_name, PeerAddr => http ); 2001/12/04 日本語ドメイン名解説 / mdnkit 16 8

mdnkit のその他のコンポーネント mdnconv mdnsproxy BIND-9 パッチ runmdn MDN ライブラリ (libmdn) 標準 C ライブラリ iconv 2001/12/04 日本語ドメイン名解説 / mdnkit 17 mdnkit のその他のコンポーネント 正規化 エンコーディング変換フィルタ mdnconv BIND-9 の dig コマンド等を多言語ドメイン対応にする BIND-9 パッチ 既存アプリケーションを多言語ドメイン対応にする runmdn 2001/12/04 日本語ドメイン名解説 / mdnkit 18 9

mdnconv エンコーディング変換と正規化を行うフィルタ エンコード変換正規化 (NAMEPREP) mdnconv DNS サーバ ローカルエンコーディングで書かれたゾーンファイル ACE に変換されたゾーンファイル 2001/12/04 日本語ドメイン名解説 / mdnkit 19 BIND-9 パッチ BIND-9 付属の dig, host, nslookup を多言語ドメイン名対応にするためのパッチ エンコード変換正規化 (NAMEPREP) ユーザ dig host nslookup ローカルエンコーディングで入力したドメイン名 ACE に変換されたドメイン名 DNS サーバ 2001/12/04 日本語ドメイン名解説 / mdnkit 20 10

runmdn 既存の Unix アプリケーションを変更せずに多言語ドメインの名前解決を可能にする 名前解決用関数を動的に入れ替え 共有ライブラリをプリロードして gethostbyname 等の関数をオーバライド Windows 用に mdn Wrapper というものも存在 WINSOCK DLL を入れ替える 2001/12/04 日本語ドメイン名解説 / mdnkit 21 入手方法と注意 ソースの入手先 http://www.nic.ad.jp/jp/research/idn/ 最新版はバージョン 2.1 ( もうすぐ 2.2?) iconv が必要 文字コード変換のための API ローカルエンコーディング (EUC-JP 等 ) のサポートのために内部的に使用 システムに備わっていなければ入手しておく必要がある 2001/12/04 日本語ドメイン名解説 / mdnkit 22 11