An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. An IRC bot differs from a regular client in that instead of providing interactive access to IRC for a human user, it performs automated functions. Often, an IRC bot is deployed as a detached program running from a stable host. It sits on an IRC channel to keep it open and prevents malicious users from taking over the channel. It can be configured to give channel operator status to privileged users when they join the channel, and can provide a unified channel operator list. Many of these features require that the bot be a channel operator. Thus, most IRC bots are run from computers which have long uptimes (generally running a BSD derivative or Linux) and a fast, stable Internet connection. As IRC has become popular with many dial-up users as well, shell accounts at shell providers have become popular as a stable Linux server with a decent connection to run a bot from. Aside from managing channel permissions, a bot can also perform functions such as logging what is posted to an IRC channel, giving out information on demand (very popular in IRC channels dealing with user support), creating statistics tracking the channel's top posters and longest-lived lurkers, or hosting trivia, Uno and other games. These functions are usually provided by scripts, often written in a scripting programming language such as Tcl or Perl by the bot's users. Channels dedicated to often use XDCC bots to distribute their files. IRC bots are particularly useful on IRC networks such as EFnet and IRCnet without channel registration services, and on networks like Undernet or QuakeNet that require conditions to be met (minimum user count, etc.) before a channel may be registered. Where bots are used for administrative functions such as this, they may need more access than a normal client connection allows. Some versions of IRC have a "Service" protocol that allows clients with these extra powers.
Jean-Pierre Hubaux, Bryan Alexander Ford, Mahdi Zamani, Italo Ivan Dacosta Petrocelli, Ludovic Barman