Katana VentraIP

IRC

Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called channels,[1] but also allows one-on-one communication via private messages[2] as well as chat and data transfer,[3] including file sharing.[4]

For other uses, see IRC (disambiguation).

Abbreviation

IRC

August 1988 (1988-08)

Not yet superseded
IRCv3 (standards process working group)

Application layer

6667, 6697

Internet Relay Chat is implemented as an application layer protocol to facilitate communication in the form of text. The chat process works on a client–server networking model. Users connect, using a client—which may be a web app, a standalone desktop program, or embedded into part of a larger program—to an IRC server, which may be part of a larger IRC network. Examples of programs used to connect include Mibbit, IRCCloud, KiwiIRC, and mIRC.


IRC usage has been declining steadily since 2003, losing 60 percent of its users.[5] In April 2011, the top 100 IRC networks served more than 200,000 users at a time.[6]

: Network-operated bots to facilitate registration of nicknames and channels, sending messages for offline users and network operator functions.

Services

Extra modes: While the original IRC system used a set of standard user and channel modes, new servers add many new modes for features such as removing color codes from text, or obscuring a user's hostmask ("cloaking") to protect from denial-of-service attacks.[17]

[16]

Proxy detection: Most modern servers support detection of users attempting to connect through an insecure (misconfigured or exploited) , which can then be denied a connection. This proxy detection software is used by several networks, although that real time list of proxies is defunct since early 2006.[18]

proxy server

Additional commands: New commands can be such things as shorthand commands to issue commands to Services, to network-operator-only commands to manipulate a user's hostmask.

: For the client-to-server leg of the connection TLS might be used (messages cease to be secure once they are relayed to other users on standard connections, but it makes eavesdropping on or wiretapping an individual's IRC sessions difficult). For client-to-client communication, SDCC (Secure DCC) can be used.

Encryption

Connection protocol: IRC can be connected to via , the old version of the Internet Protocol, or by IPv6, the current standard of the protocol.

IPv4

Kick a user.

Ban a user.

Give another user IRC Channel Operator Status or IRC Channel Voice Status.

Change the IRC Channel topic while channel mode +t is set.

Change the IRC Channel Mode locks.

add-on for Mozilla Firefox (for Firefox 56 and earlier; included as a built-in component of SeaMonkey).

ChatZilla

Search engines[edit]

There are numerous search engines available to aid the user in finding what they are looking for on IRC.[101][102] Generally the search engine consists of two parts, a "back-end" (or "spider/crawler") and a front-end "search engine".


The back-end (spider/webcrawler) is the work horse of the search engine. It is responsible for crawling IRC servers to index the information being sent across them. The information that is indexed usually consists solely of channel text (text that is publicly displayed in public channels). The storage method is usually some sort of relational database, like MySQL or Oracle.


The front-end "search engine" is the user interface to the database. It supplies users with a way to search the database of indexed information to retrieve the data they are looking for. These front-end search engines can also be coded in numerous programming languages.


Most search engines have their own spider that is a single application responsible for crawling IRC and indexing data itself; however, others are "user based" indexers. The latter rely on users to install their "add-on" to their IRC client; the add-on is what sends the database the channel information of whatever channels the user happens to be on.


Many users have implemented their own ad hoc search engines using the logging features built into many IRC clients. These search engines are usually implemented as bots and dedicated to a particular channel or group of associated channels.

7-bit era: In the early days of IRC, especially among and Finnish language users, national variants of ISO 646 were the dominant character encodings. These encode non-ASCII characters like Ä Ö Å ä ö å at code positions 0x5B 0x5C 0x5D 0x7B 0x7C 0x7D (US-ASCII: [ \ ] { | }). That is why these codes are always allowed in nicknames. According to RFC 1459, { | } in nicknames should be treated as lowercase equivalents of [ \ ] respectively.[14] By the late 1990s, the use of 7-bit encodings had disappeared in favour of ISO 8859-1, and such equivalence mappings were dropped from some IRC daemons.

Scandinavian

8-bit era: Since the early 1990s, 8-bit encodings such as have become commonly used for European languages. Russian users had a choice of KOI8-R, ISO 8859-5 and CP1251, and since about 2000, modern Russian IRC networks convert between these different commonly used encodings of the Cyrillic script.

ISO 8859-1

Multi-byte era: For a long time, East Asian IRC channels with logographic scripts in China, Japan, and Korea have been using multi-byte encodings such as or ISO-2022-JP. With the common migration from ISO 8859 to UTF-8 on Linux and Unix platforms since about 2002, UTF-8 has become an increasingly popular substitute for many of the previously used 8-bit encodings in European channels. Some IRC clients are now capable of reading messages both in ISO 8859-1 or UTF-8 in the same channel, heuristically autodetecting which encoding is used. The shift to UTF-8 began in particular on Finnish-speaking IRC (Merkistö (Finnish)).

EUC

IRC still lacks a single globally accepted standard convention for how to transmit characters outside the 7-bit ASCII repertoire. IRC servers normally transfer messages from a client to another client just as byte sequences, without any interpretation or recoding of characters. The IRC protocol (unlike e.g. MIME or HTTP) lacks mechanisms for announcing and negotiating character encoding options. This has put the responsibility for choosing the appropriate character codec on the client. In practice, IRC channels have largely used the same character encodings that were also used by operating systems (in particular Unix derivatives) in the respective language communities:


Today, the UTF-8 encoding of Unicode/ISO 10646 would be the most likely contender for a single future standard character encoding for all IRC communication, if such standard ever relaxed the 510-byte message size restriction. UTF-8 is ASCII compatible and covers the superset of all other commonly used coded character set standards.

File sharing[edit]

Much like conventional P2P file sharing, users can create file servers that allow them to share files with each other by using customised IRC bots or scripts for their IRC client. Often users will group together to distribute warez via a network of IRC bots.[103]


Technically, IRC provides no file transfer mechanisms itself; file sharing is implemented by IRC clients, typically using the Direct Client-to-Client (DCC) protocol, in which file transfers are negotiated through the exchange of private messages between clients. The vast majority of IRC clients feature support for DCC file transfers, hence the view that file sharing is an integral feature of IRC.[104] The commonplace usage of this protocol, however, sometimes also causes DCC spam. DCC commands have also been used to exploit vulnerable clients into performing an action such as disconnecting from the server or exiting the client.

Chat room

Client-to-client protocol

Comparison of instant messaging protocols

Comparison of IRC clients

Comparison of mobile IRC clients

The Hamnet Players

Internet slang

List of IRC commands

Serving channel

and XMPP, alternative chat protocols

Matrix (protocol)

Reed, Darren (May 1992). . IETF. doi:10.17487/RFC1324. RFC 1324. Retrieved 30 October 2009.

A Discussion on Computer Network Conferencing

; Reed, Darren (May 1993). Internet Relay Chat Protocol. IETF. doi:10.17487/RFC1459. RFC 1459. Retrieved 30 October 2009.

Oikarinen, Jarkko

Kalt, Christophe (April 2000). . IETF. doi:10.17487/RFC2810. RFC 2810. Retrieved 30 October 2009.

Internet Relay Chat: Architecture

Kalt, Christophe (April 2000). . IETF. doi:10.17487/RFC2811. RFC 2811. Retrieved 30 October 2009.

Internet Relay Chat: Channel Management

Loesch, Carl (17 July 2003). . psyc.eu. Retrieved 10 April 2011.

"Functionality Provided by Systems for Synchronous Conferencing"

Kalt, Christophe (April 2000). . IETF. doi:10.17487/RFC2812. RFC 2812. Retrieved 30 October 2009.

Internet Relay Chat: Client Protocol

Kalt, Christophe (April 2000). . IETF. doi:10.17487/RFC2813. RFC 2813. Retrieved 30 October 2009.

Internet Relay Chat: Server Protocol

. Chapel Hill, North Carolina: ibiblio. Retrieved 8 April 2011.

"Logs of major events in the online community"

Butcher, Simon. . alien.net.au. Retrieved 10 April 2011.

"IRC technical information"

at Curlie

IRC

IRC Numerics List

History of IRC

– Technical and Historical IRC6 information; Articles on the history of IRC

IRC.org

– Internet Relay Chat (IRC) help archive; Large archive of IRC-related documents

IRChelp.org

– Working group of developers, who add new features to the protocol and write specs for them

IRCv3

Archived 8 October 2020 at the Wayback Machine – Internet Relay Chat (IRC) network and channel search engine with historical data

IRC-Source

– Internet Relay Chat (IRC) network listing with historical data

irc.netsplit.de