
IRCボットとは、クライアントとしてインターネットリレーチャット(IRC)に接続するスクリプト群、または独立したプログラムのことで、他のIRCユーザーからは別のユーザーとして認識されます。IRCボットは、通常のクライアントとは異なり、人間ユーザーにIRCへの対話型アクセスを提供するのではなく、自動化された機能を実行します。
IRCボットは、多くの場合、安定したホスト上で動作する独立したプログラムとして展開されます。IRCチャンネル上に常駐し、チャンネルを開いたままにして、悪意のあるユーザーによるチャンネルの乗っ取りを防ぎます。特権ユーザーがチャンネルに参加した際にチャンネルオペレーターのステータスを付与するように設定でき、統一されたチャンネルオペレーターリストを提供することも可能です。これらの機能の多くは、ボットがチャンネルオペレーターであることを必要とします。そのため、ほとんどのIRCボットは、長時間稼働するコンピュータ(一般的にはBSD派生OSまたはLinuxが動作)と高速で安定したインターネット接続を備えたコンピュータ上で実行されます。IRCはダイヤルアップ接続のユーザーにも広く普及したため、シェルプロバイダのシェルアカウントは、ボットを実行するための安定したLinuxサーバーとして、良好な接続環境を提供する場所として人気を集めています。
ボットは、チャンネルの権限管理以外にも、IRCチャンネルに投稿された内容をログに記録したり、要求に応じて情報を提供したり(ユーザーサポートを扱うIRCチャンネルで非常に人気があります)、チャンネルのトップ投稿者や最も長く閲覧しているユーザーを追跡する統計を作成したり、トリビア、Unoなどのゲームをホストしたりといった機能も実行できます。これらの機能は通常、ボットのユーザーによってTclやPerlなどのスクリプト言語で記述されたスクリプトによって提供されます。ファイル共有専用のチャンネルでは、ファイルの配布にXDCCボットがよく使用されます。
IRCボットは、EFnetやIRCnetのようにチャンネル登録サービスのないIRCネットワーク、およびUndernetやQuakeNetのようにチャンネル登録前に一定の条件(最低ユーザー数など)を満たす必要があるネットワークで特に役立ちます。このような管理機能にボットを使用する場合、通常のクライアント接続よりも多くのアクセス権限が必要になることがあります。IRCの一部のバージョンには、クライアントがこれらの追加権限を利用できる「サービス」プロトコルがあります。サーバーによって承認されたこのようなボットは、IRCサービスと呼ばれます。
ボットは必ずしも歓迎されるわけではありません。一部のIRCネットワークではボットの使用を禁止しています。その理由の一つは、ネットワークに接続されるニックネームが増えるごとに、すべてのサーバー間で同期されているネットワークデータベースのサイズが大きくなるためです。大規模なネットワークでボットを許可すると、かなりの量のネットワークトラフィックオーバーヘッドが発生し、その費用を負担する必要が生じ、ネットワークの分裂につながる可能性さえあります。[ 1 ] [ 2 ]
ソフトウェア…水平並列プログラミング。