Chapter 1. インターネットでチャットをしよう(ports/irc編)

Table of Contents
Internet Relay Chat
サーバの設定
クライアントいろいろ
Proxyなどなど
おわりに

私の現在インターネットと呼ばれているものへの初体験は10年前でした。 当時、UUCP接続 [1] だった学校の設備を利用して、電子メールやネットニュースを利用しました。 貧乏だったためパソコン通信などもしたことがなく、チャット文化というものを知らずに成長(?)してきました。 というわけで、今でもあまりチャットは利用していなかったりします [2]

ところが、今回はIRCというインターネットで利用可能なチャットシステムについて紹介をします。 現在ではチャットと言えばWebベースでのチャットシステムが主流です [3] が、適所適材ということで専用システムを使うのもいいでしょう。

Internet Relay Chat

IRCの仕組み

チャットはパソコン通信などのホスト接続型の通信システムではかなり昔から提供されてきたサービスです。 ユーザは話題ごとに分けられたチャンネルと呼ばれる部屋のようなものに入ります。 IRCでは、チャンネルの頭には"#"が付きます。 日本製のクライアントの多くでは%でチャンネルを指定することで、%hogeから#hoge:*.jpへの置き換えが行われます。 チャンネル内ではユーザが打ち込んだ文章(メッセージ)が、リアルタイムで他の同じチャンネルに入っているユーザに表示されていきます。 チャンネルには誰でも利用できるものの他にも、限られた人だけが利用可能なものが提供されることもあります。

ユーザはニックネームと呼ばれる名前で識別されます。 これはサーバ網全体でユニークでなければなりません。 IRCでのニックネームは9文字までの文字になります。

IRC(Internet Relay Chat)はインターネット上でチャットを実現するためのシステムで、RFC2810-2813(RFC1459の改定版)で定義されています。 クライアントは近くのサーバにつなぎますが、メッセージを隣のサーバに送る(リレーする)ことでインターネット全体でメッセージが伝わる仕組みになっています。 したがって、中継を行うサーバが停止することなどによってIRC網が不安定となることもあります。 もちろん、異なるサーバに対して同時にメッセージが送られる可能性が有りますので、全てのクライアントで必ず同じ順序でメッセージが表示されるわけではありません。

IRCでは、メッセージがループし無限に増殖するのを防ぐために、サーバは木状に配置されることが規定されています。 ループを作ってしまわないように設定には注意をして下さい。

RFCでは規定されていないようですが、最近ではDCC(Direct Client Connection)という機能があり、クライアント同士でファイルのやりとりなどができるようになっています(スペック)。

日本語の漢字コードですが、基本的にはJISで流すことを約束しているところがほとんどです。 が、WindowsなどのクライアントのためにShift-JISが流れて来る可能性もあります。 EUCは流せてもWindowsなどのクライアントではほとんど読めないでしょう。

IRCのコマンド

IRCクライアントの多くでは、コマンドは頭に"/"をつけて指定します。 コマンドの一部をTable 1-1に示します。 GUIを使えるクライアントでもこれらのコマンドを入力できる形式のものが多いので、覚えておいて損はないでしょう。 全てのコマンドについて知りたい場合は

  1. /helpコマンドを利用する。

  2. 簡易IRCコマンド一覧を参照する。

  3. irc/ircd-hybrid/work/ircd-hybrid-5.3p8/doc/Manualを参照する。

  4. 前述のRFCをあたる。

などして下さい。 クライアント/サーバによっては実現されていないコマンドもあるので、/helpを使うのが一番適当だと思います。

Table 1-1. IRCのコマンド一覧(抜粋)

コマンド引数説明
/help[コマンド名]コマンドのヘルプを表示。
/server[サーバ名]IRCサーバを変更する。
/quit[終了メッセージ]サーバとの接続を終了する。
/list チャンネルの一覧を表示する。
/joinチャンネル名 チャンネルに入る。
/leaveチャンネル名チャンネルから去る。
/printmsg(/msg)ニックネーム メッセージニックネームの人だけにメッセージを送る。
/nickニックネームニックネームを変更する。
/whoisニックネームニックネームの人に関しての情報を表示する。/whoも参照。

FreeBSDに関する話題を扱うサーバ/チャンネル

Internetの世界には四大ネットワークと呼ばれる大きな網が提供されています。 これらには以下のような特徴があります。 また詳しい情報はIRChelp.org Internet Relay Chat (IRC) help archiveにまとまっています。

  • IRCnet: 日本からは最もアクセスしやすいが最近は少し不安定。 日本以外にはヨーロッパ中心のネットワーク。

  • EFnet: 海外のFreeBSDユーザにはもっともポピュラー。 かなり不安定。

  • Undernet: EFnetが不安定な場合の緊急避難用として良く用いられる。 普段はほとんど会話はない。

  • DALnet: 実験的な機能のテストベッドとなっている。 初心者にはあまり向かないかも。

X-Chatなどのクライアントによっては、あらかじめこれらのサーバのいくつかが登録されています。 この場合、ネットワークでの距離を考慮して一番近いサーバを使うようにして下さい。

FreeBSDに関する話題が扱われているサーバ/チャンネルとしては、 IRCnetの#FreeBSD:*.jpが日本語で会話できるチャンネルになっています。 また、EFnetの#FreeBSDや#FreeBSD-helpは英語ですが、活発に情報交換されているようです。

日本のIRC網としては、BSD関係のイベントで良く利用されるReichaNetや、Friend Chat IRCなどいくつか存在します。 ReichaNetには#FreeBSDというチャンネルもあります。 その他のサーバ(網)はこれらのページに存在するリンクから探してみて下さい。

Notes

[1]

常時接続ではないのでインターネットそのものとは言えませんね。 でもその時の衝撃はすごかったです。

[2]

「はまると怖いらしい」という噂も利用を躊躇している理由の一つです;)

[3]

確かに、Webベースのシステムは、ブラウザの使い方さえ教えればいいので、楽なんですけどもね…