この文書はIRCプロトコルにおけるニューメリックリプライ005(RPL_ISUPPORT)で 用いられる全てのパラメータの概要を、そのパラメータの簡単な解説と共に示すものです。 このニューメリックリプライのより形式的な定義についてはEdward Brocklesbyの ISUPPORTドラフト(http://www.ietf.org/internet-drafts/draft-brocklesby-irc-isupport-01.txt)を 参照してください。 このページでは、それが未だ実験的利用段階である、実用性に乏しい等の理由で ドラフトに含まれていないパラメータについてもその使われ方の例を示しています。 次に示すのはニューメリックリプライ005の簡単な例です。 :irc.example.org 005 nick PREFIX=(ov)@+ CHANTYPES=#& :are supported by this server 以下に全てのパラメータを簡単な解説と共に示します。 パラメータ:PREFIX 値:(モード)プレフィックス サーバー:全て 解説: クライアントが取得できるチャンネルモードのリストとニックネームの先頭に 付き得るプレフィックスのリストです。モードは最も影響力の大きいものから順に 並んでいます。ここで示されるプレフィックスはWHOIS、WHO、NAMESコマンドに 対する出力の中で用いられます。 注意:最も影響力の大きいモードしか表示しないサーバーが存在します。 例: PREFIX=(ov)@+ (IRCNet, Bahamut, ircu) PREFIX=(ohv)@%+ (Hybrid) パラメータ:CHANTYPES 値:文字 サーバー:全て 解説: サポートされているチャンネルのプレフィックスです。 例: CHANTYPES=+#& (ircu) CHANTYPES=#&!+ (IRCNet) CHANTYPES=&# (Bahamut) CHANTYPES=#& (Hybrid) パラメータ:CHANMODES 値:あ,い,う,え サーバー:全て 解説: 4種類に分類したチャンネルモードのリストです。 あ = ニックネームやアドレスをリストに追加するモード指示子です。常にパラメータが必要です。 い = 状態をトグルするタイプのモード指示子で、常にパラメータが必要です。 う = 状態をトグルするタイプのモード指示子で、状態をセットする場合にのみパラメータが必要です。 え = 状態をトグルするタイプのモード指示子で、常にパラメータを持ちません。 注意:「あ」のタイプのモードはパラメータを指定しないと現在のリストを返します。 注意:リストに存在しないモードは「え」タイプに属すると解釈するクライアントが存在します。 注意:PREFIXにはリストされているのにここにリストされていないモードは「い」タイプだと考えられます。 例: CHANMODES=b,k,l,imnpst (ircu) CHANMODES=beI,k,l,imnpstaqr (IRCNet) CHANMODES=beI,k,l,imnpsta (Hybrid) パラメータ:MODES 値:数値 サーバー:全て 解説: 一回のMODEコマンドで指定できるパラメータつきのモードの最大数です。 例: MODES=3 (IRCNet) MODES=4 (Hybrid) MODES=6 (ircu MODES=13 (Bahamut) パラメータ:MAXCHANNELS 値:数値 サーバー:全て 解説: JOINできるチャンネルの最大数です。 注意:&チャンネルはこの数値に数えられないはずです。 例: MAXCHANNELS=10 パラメータ:NICKLEN 値:数値 サーバー:全て 解説: ニックネームの最大文字数です。 例: NICKLEN=9 (IRCNet, ircu, Hybrid) NICKLEN=30 (Bahamut) パラメータ:TOPICLEN 値:数値 サーバー:全て 解説: トピックの最大文字数です。 例: TOPICLEN=80 (IRCNet) TOPICLEN=120 (Hybrid) TOPICLEN=160 (ircu) TOPICLEN=307 (Bahamut) パラメータ:KICKLEN 値:数値 サーバー:全て 解説: KICKコマンドのコメントの最大文字数です。 例: KICKLEN=80 (IRCNet) KICKLEN=120 (Hybrid) KICKLEN=160 (ircu) KICKLEN=307 (Bahamut) パラメータ:CHANNELLEN 値:数値 サーバー:全て 解説: チャンネル名の最大文字数です 例: CHANNELLEN=50 (IRCNet) パラメータ:MAXBANS 値:数値 サーバー:全て 解説: 1つのチャンネルでのBANの最大数です。 注意:招待マスクや例外マスクのような他のリストでもこの数値が使われていると思われます。 例: MAXBANS=25 (Hybrid) MAXBANS=30 (IRCNet, ircu) MAXBANS=100 (Bahamut) パラメータ:NETWORK 値:名前 サーバー:全て 解説: IRCネットワークの名前です 例: NETWORK=EFnet (Hybrid) NETWORK=IRCNet (IRCNet) NETWORK=Undernet (ircu) NETWORK=DALnet (Bahamut) パラメータ:EXCEPTS 値:なし サーバー:Hybrid, IRCNet 解説: サーバーが例外マスクモード(+e)をサポートしていることを示します。 詳しくはRFC2811(ftp://ftp.irc.org/irc/docs/rfc2811.txt)を参照してください。 例: EXCEPTS パラメータ:INVEX 値: サーバー:Hybrid, IRCNet 解説: サーバーが招待マスクモード(+I)をサポートしていることを示します。 詳しくはRFC2811(ftp://ftp.irc.org/irc/docs/rfc2811.txt)を参照してください。 例: INVEX パラメータ:SILENCE 値:数値 サーバー:ircu, Bahamut 解説: サーバーがSILENCEコマンドをサポートしていることを示します。 数値はリストの最大数を示します。 例: SILENCE=15 (ircu) SILENCE=10 (Bahamut) パラメータ:STATUSMSG 値:文字列 サーバー:ない? 解説: サーバーがある地位以上のチャンネルメンバーにのみメッセージを伝える機能を サポートしていることを示します。地位はPREFIXに含まれる文字のひとつにより示されます。 例: STATUSMSG=+%@ パラメータ:WALLCHOPS 値:なし サーバー:Hybrid, ircu 解説: サーバーがチャンネルオペレータにのみメッセージを伝える機能をサポートしていることを示します。 (NOTICE @#channel) 注意:このパラメータはSTATUSMSGで置き換えられました。  ircuはWALLCHOPSコマンドもサポートしている? 注意:ircuでは+channelの機能と重なるため+vされていてもメッセージは伝わりません。 注意:HybridではPREFIXに含まれる全てのプレフィックスをサポートしています。 注意:Hybrid6とircuではHybrid7のようなPRIVMSGコマンドでの使用はサポートしていません。 例: WALLCHOPS パラメータ:CASEMAPPING 値:文字列 サーバー:全て 解説: ニックネームとチャンネル名の比較で用いられる大文字小文字の関係規則です。 現在利用可能なのは以下の通り。 ascii:文字[a-z]は[A-Z]の小文字であるとされます。 rfc1459:asciiに加えて {}|~ のそれぞれの文字は []\^ の小文字であるとされます。 strict-rfc1459:asciiに加えて {}| のそれぞれの文字は []\ の小文字であるとされます。 注意:知られている全ての実装は~と^を等価であるとみなすのに対しRFC1459は これらの文字に対する扱いが抜けています。 例: CASEMAPPING=rfc1459 (ircu, Hybrid, IRCNet) CASEMAPPING=ascii (Bahamut) パラメータ:CHARSET 値:文字列 サーバー:KineIRCd 解説: サーバーが生成する全てのメッセージはこの文字セットに基づきます。 これはニューメリックリプライとNOTICEコマンドを含みます。 注意:これはニックネームにUTF-8が使えるということを言っているわけではありません。 注意:IRCではUTF-8を使うことを強く勧めます。 注意:ircuはCHARSETをCASEMAPPINGと同様の用途に使っていました。 その場合文字列には「rfc1459」が使われていました。 CHARSETの値として「rfc1459」が与えられた場合は文字セットの指定ではなく 文字の大小関係規則だと理解する方が良いでしょう。 例: CHARSET=UTF-8 (KineIRCd) パラメータ:STD 値:文字列 サーバー:ない? 解説: その実装が基準としている資料を示します。 例: STD=i-d パラメータ:RFC2812 値:なし サーバー:IRCNet 解説: サーバーがRFC2812(ftp://ftp.irc.org/irc/docs/rfc2812.txt)をサポートしていることを示します。 例: RFC2812 パラメータ:CHIDLEN 値:数値 サーバー:IRCNet 解説: !チャンネルで用いられるチャンネルIDの文字数(デフォルトは5)です。 より詳しい情報についてはRFC2812(ftp://ftp.irc.org/irc/docs/rfc2811.txt)を見てください。 例: CHIDLEN=5 パラメータ:PENALTY 値:なし サーバー:IRCNet 解説: サーバーがいくつかのコマンドに対する1メッセージあたり2秒、メッセージ中の120バイトあたり1秒の 通常のペナルティの代わりに特別なペナルティを課すことを示します。 例: PENALTY パラメータ:FNC 値:なし サーバー:IRCNet 解説: 強制ニックネーム変更、すなわちクライアントからNICKメッセージが送られていないのに サーバーがニックネームを変更することがあることを示します。 例: FNC パラメータ:NOQUIT 値:なし サーバー:Bahamut 解説: これはサーバ・サーバ間で用いられるのでクライアントですることはない? 例: NOQUIT パラメータ:USERIP 値:なし サーバー:ircu 解説: サーバーがUSERIPコマンドを実装していることを示します。 例: USERIP パラメータ:CPRIVMSG 値:なし サーバー:ircu 解説: サーバーがあるチャンネルにいる複数の人にメッセージを送るCPRIVMSGコマンドを 実装していることを示します。 (CPRIVMSG channel nick,nick2,... :text) 例: CPRIVMSG パラメータ:CNOTICE 値:なし サーバー:ircu 解説: サーバーがCNOTICEコマンドを実装していることを示します。CPRIVMSGと同様です 例: CPRIVMSG パラメータ:MAXTRAGETS 値:数値 サーバー:Hybrid 解説: PRIVMSGコマンドやNOTICEコマンドで一度に指定できる対象の最大数です。 例: MAXTARGETS=4 (Hybrid) パラメータ:KNOCK 値:なし サーバー:Hybrid 解説: サーバーがKNOCKコマンドを実装していることを示します。 例: KNOCK パラメータ:VCHANS 値:なし サーバー:Hybrid 解説: サーバーが仮想チャンネルを実装していることを示します。 より詳しい情報についてはvchans.txt(http://www.ircd-hybrid.org/docs/vchans.txt)を 参照してください 例: VCHANS パラメータ:SAFELIST 値:なし サーバー:Bahamut 解説: LISTコマンドの結果が複数回に分けて送信されるので送信キューが一杯になって クライアントとの接続が切れることがないことを示します。 例: SAFELIST パラメータ:WATCH 値:数値 サーバー:Bahamut 解説: WATCHで利用できる最大値です 例: WATCH=128 (Bahamut) パラメータ:WHOX 値:なし サーバー:ircu 解説: WHOコマンドがWHOXプロトコルを利用することを示します。 例: WHOX パラメータ:CALLERID 値:なし サーバー:Hybrid 解説: サーバーが+gユーザモードによるサーバー側での無視機能をサポートしていることを示します。 詳しくはmodeg.txt(http://www.ircd-hybrid.org/docs/modeg.txt)を参照してください。 例: CALLERID パラメータ:ACCEPT 値:なし サーバー:なし 解説: [廃止]CALLERIDと同じです。 例: ACCEPT パラメータ:LANGUAGE 値:文字列,文字列,… サーバー:KineIRCd 解説: [実験的]サーバーがLANGUAGEコマンドをサポートしていることを示します。 サーバーが生成する全てのメッセージ(ニューメリックリプライとNOTICE)は 指定した言語で送られます。 LANGUAGEパラメータは指定可能な言語のリストを列挙します。言語タグについての詳しい情報は BCP47(ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt)を参照してください。 注意:サーバーは常にUTF-8でエンコードしてきます。 文字列がとても長くなったらどうするんでしょ? 例: LANGUAGE=en,i-klingon いくつかのパラメータは文字列長を定義しますが、現在のところ1文字当たり何バイトなのかは 定義されていません。文字セットが定義されていない場合1バイトであるとするのが良いでしょう。 クライアント作成者の利便性のためにSILENCE、USERIP、CPRIVMSG、CNOTICE、KNOCK等の コマンドについてのリンクを張りたいのですが、どうもこれらの文書はオンラインにはないようです。 TOPICLEN、KICKLEN、CHANNELLENは不要だと考えられており将来において廃止されると思われます。 この文書の少し前のバージョンではCACEMAPPINGをCHARMAPPINGと書いてありました。 これは間違いであり、既に訂正済みです。 コメント等はQ@irc.orgまで この文書の最新バージョンはここ(http://www.irc.org/tech_docs/005.html)で見つけられるはずです 最終更新日 2002/12/12.