メインコンテンツへジャンプする

JPNICはインターネットの円滑な運営を支えるための組織です

ロゴ:JPNIC

WHOIS 検索 サイト内検索 WHOISとは? JPNIC WHOIS Gateway
WHOIS検索 サイト内検索

runidn


概要

runidnは標準的なリゾルバ関数を用いて名前解決を行う UNIX クライアントを、 再コンパイルなしに国際化ドメイン名を扱えるようにするためのコマンドです。 具体的には、名前解決用の関数 (例えば gethostbyname) が アプリケーションのローカルエンコーディング (EUC-JP 等) で表現された ホスト名を受け付けるようになります。またこれらの API が国際化ホスト名を ローカルエンコーディングで返すようになります。

ただし、システムによっては使用できなかったり、コマンドによっては効果が なかったりします。これらの制限に関しては制限事項 の項をご覧ください。


設定

idnkit の標準的なインストールでは、runidn はインストールされません。 runidn を使用したい場合は、configure スクリプト実行時に --enable-runidn を指定してください。詳しくは、 idnkit installation guideconfigure実行 をご覧ください。

また、runidn を使用するうえで、 idnkit の設定ファイルを利用して、 使用するエンコーディングや NAMEPREP を設定することができます。 このファイルの設定方法については idnkit の設定をご覧ください。

また、オプションで明示しない限り、runidn はアプリケーションの ローカルエンコーディングを自動的に推測しますが、推測に失敗する場合も あります。そのような場合の対処方法は ローカルエンコーディングについて をご覧ください。


使用方法

runidn の使い方は極めて簡単で、アプリケーションの起動コマンドの 先頭にコマンド名 runidn をつけるだけです。

% runidn [オプション...] コマンド [引数...]

例えば telnet コマンドを使用してホスト「私の会社.jp」に 接続するには次のようにします。

% runidn telnet 私の会社.jp

なお、runidn は 環境変数 IDN_DISABLE の設定を明示的に無視するため、 IDN_DISABLE が設定されているかどうかにかかわらず、ドメイン名の変換処理を 行います。


オプション

runidn は次のオプションを認識します。

-e ローカルエンコーディング
アプリケーションのローカルエンコーディングを指定します。 このオプションを指定しなかった場合、ロケールや環境変数から ローカルエンコーディングの自動判定を行います。 判定方法について詳しくは idnkit の設定ローカルエンコーディングについて の項をご覧ください。

制限事項

runidn は、idnkit が提供している方法の中で最も手軽にクライアントが 国際化ドメインを扱えるようにするものですが、どのようなクライアントにも 適用できるわけではありません。

runidn はシステムの持つ共有ライブラリの動的リンク機構 (ライブラリのプリロード機能) を利用し、 クライアントアプリケーションの実行時に、アプリケーションにリンクされている 名前解決用の関数を国際化ドメイン名を扱う機能を持たせたバージョンのものと 置き換えることによって国際化ドメイン名の処理を実現します。 runidn が置き換えるのは、以下の関数です。

  • gethostbyname
  • gethostbyname_r
  • gethostbyname2
  • gethostbyname2_r
  • gethostbyaddr
  • gethostbyaddr_r
  • getipnodebyname
  • getipnodebyaddr
  • getaddrinfo
  • getnameinfo

したがって runidn が動作するには次のようないくつかの制限があります。

  1. 共有ライブラリの動的リンク機構を用いているので、 共有ライブラリが使用できるシステムでなければなりません
  2. 環境変数 LD_PRELOAD または類似の機構による ライブラリのプリロード機能を持つシステムでなければなりません
  3. runidn の対象となるコマンドはリゾルバライブラリを動的リンク していなくてはなりません
  4. システムのライブラリが iconv() 関数を提供していない場合、外部の ライブラリを用いることになりますが、そのライブラリも共有ライブラリで なければなりません。
  5. アプリケーションは名前解決に上記の関数を使用していなければなりません
  6. セキュリティ上の理由から一般に setuid されたコマンドはプリロード機能が 使えないようになっているので、setuid されたコマンドであってはなりません

このページを評価してください

このWebページは役に立ちましたか?
よろしければ回答の理由をご記入ください

それ以外にも、ページの改良点等がございましたら自由にご記入ください。

回答が必要な場合は、お問い合わせ先をご利用ください。

ロゴ:JPNIC

Copyright© 1996-2024 Japan Network Information Center. All Rights Reserved.