Cwient software is avaiwabwe for every major operating system dat supports Internet access.[6] As of Apriw 2011, de top 100 IRC networks served more dan hawf a miwwion users at a time,[7] wif hundreds of dousands of channews[7] operating on a totaw of roughwy 1,500 servers[7] out of roughwy 3,200 servers worwdwide.[8] IRC usage has been decwining steadiwy since 2003, wosing 60% of its users (from 1 miwwion to about 400,000 in 2012) and hawf of its channews (from hawf a miwwion in 2003).[9]

IRC was created by Jarkko Oikarinen in August 1988 to repwace a program cawwed MUT (MuwtiUser Tawk) on a BBS cawwed OuwuBox at de University of Ouwu in Finwand, where he was working at de Department of Information Processing Science. Jarkko intended to extend de BBS software he administered, to awwow news in de Usenet stywe, reaw time discussions and simiwar BBS features. The first part he impwemented was de chat part, which he did wif borrowed parts written by his friends Jyrki Kuoppawa and Jukka Pihw. The first IRC network was running on a singwe server named towsun, uh-hah-hah-hah.ouwu.fi.[10] Oikarinen found inspiration in a chat system known as Bitnet Reway, which operated on de BITNET.[11]

Jyrki Kuoppawa pushed Jarkko to ask Ouwu University to free de IRC code so dat it awso couwd be run outside of Ouwu, and after dey finawwy got it reweased, Jyrki Kuoppawa immediatewy instawwed anoder server. This was de first "irc network". Jarkko got some friends at de Hewsinki University and Tampere University to start running IRC servers when his number of users increased and oder universities soon fowwowed. At dis time Jarkko reawized dat de rest of de BBS features probabwy wouwdn't fit in his program.[10]

Jarkko got in touch wif peopwe at de University of Denver and Oregon State University. They had deir own IRC network running and wanted to connect to de Finnish network. They had gotten de program from one of Jarkko's friends, Vijay Subramaniam—de first non-Finnish person to use IRC. IRC den grew warger and got used on de entire Finnish nationaw network—Funet—and den connected to Nordunet, de Scandinavian branch of de Internet. In November 1988, IRC had spread across de Internet and in de middwe of 1989, dere were some 40 servers worwdwide.[10]

In August 1990 de first major disagreement took pwace in de IRC worwd. The "A-net" (Anarchy net) incwuded a server named eris.berkewey.edu. It was aww open, reqwired no passwords and had no wimit on de number of connects. As Greg "wumpus" Lindahw expwains: "it had a wiwdcard server wine, so peopwe were hooking up servers and nick-cowwiding everyone". The "Eris Free Network", EFnet, made de eris machine de first to be Q-wined (Q for qwarantine) from IRC. In wumpus' words again: "Eris refused to remove dat wine, so I formed EFnet. It wasn't much of a fight; I got aww de hubs to join, and awmost everyone ewse got carried awong." A-net was formed wif de eris servers, EFnet was formed wif de non-eris servers. History showed most servers and users went wif EFnet. Once ANet disbanded, de name EFnet became meaningwess, and once again it was de one and onwy IRC network.[10]

Anoder fork effort, de first dat reawwy made a big and wasting difference, was initiated by 'Wiwddang' in de U.S. October 1992 (it forked off de EFnet ircd version 2.8.10). It was meant to be just a test network to devewop bots on but it qwickwy grew to a network "for friends and deir friends". In Europe and Canada a separate new network was being worked on and in December de French servers connected to de Canadian ones, and in de end of de monf, de French and Canadian network was connected to de US one and de network dat water came to be cawwed "The Undernet" was born, uh-hah-hah-hah.[10]

The "undernetters" wanted to take ircd furder in an attempt to make it wess bandwidf consumptive and to try to sort out de channew chaos (netspwits and takeovers) dat EFnet started to suffer from. For de watter purpose, de Undernet impwemented timestamps, new routing and offered de CService—a program dat awwowed users to register channews and den attempted to protect dem from troubwemakers. The very first server wist presented, from February 15, 1993, incwudes servers from USA, Canada, France, Croatia and Japan, uh-hah-hah-hah. On August 15, de new user count record was set to 57 users.[10]

In May 1993, RFC 1459[1] was pubwished and detaiws a simpwe protocow for cwient/server operation, channews, one-to-one and one-to-many conversations.[10] It is notabwe dat a significant number of extensions wike CTCP, cowors and formats are not incwuded in de protocow specifications, nor is character encoding,[15] which wed various impwementations of servers and cwients to diverge. In fact, software impwementation varied significantwy from one network to de oder, each network impwementing deir own powicies and standards in deir own code bases.

During de summer of 1994, de Undernet was itsewf forked. The new network was cawwed DALnet (named after its founder: dawvenjah), formed for better user service and more user and channew protections. One of de more significant changes in DALnet was use of wonger nicknames (de originaw ircd wimit being 9 wetters). DALnet ircd modifications were made by Awexei "Lefwer" Kosut. DALnet was dus based on de undernet ircd server, awdough de DALnet pioneers were EFnet abandoners. According to James Ng de initiaw DALnet peopwe were "ops in #StarTrek sick from de constant spwits/wags/takeovers/etc".[10]

DALnet qwickwy offered gwobaw WawwOps (IRCop messages dat can be seen by users who are +w (/mode NickName +w)), wonger nicknames, Q:Lined nicknames (nicknames dat cannot be used i.e. ChanServ, IRCop, NickServ, etc.), gwobaw K:Lines (ban of one person or an entire domain from a server or de entire network), IRCop onwy communications: GwobOps, +H mode showing dat an IRCop is a "hewpop" etc. Much of DALnet's new functions were written in earwy 1995 by Brian "Morpher" Smif and awwow users to own nicknames, channews, send memos and more.[10]

In Juwy 1996, after monds of fwame wars and discussions on de maiwing wist, dere was yet anoder spwit due to disagreement in how de devewopment of de ircd shouwd evowve. Most notabwy, de "european" (most of dose servers were in Europe) side dat water named itsewf IRCnet argued for nick and channew deways where de EFnet side argued for timestamps.[10] There were awso disagreements about powicies: de European side had started to estabwish a set of ruwes directing what IRCops couwd and couwd not do, a point of view opposed by de US side.[16]

Most (not aww) of de IRCnet servers were in Europe, whiwe most of de EFnet server were in de US. This event is awso known as "The Great Spwit" in many IRC societies. EFnet has since (as of August 1998) grown and passed de number of users it had den, uh-hah-hah-hah. In de autumn year 2000, EFnet had some 50,000 users and IRCnet 70,000.[10]

After its gowden era during de 1990s and earwy 2000s (240,000 users on QuakeNet in 2004), IRC has seen a significant decwine, wosing around 60% of users between 2003 and 2012, wif users moving to more modern sociaw media pwatforms wike Facebook or Twitter,[9] but awso to open pwatforms wike XMPP which was devewoped in 1999. Certain networks wike Freenode have not fowwowed de overaww trend and have more dan qwadrupwed in size during de same period.[9] As of 2016, Freenode is de wargest IRC network wif around 90,000 users.[17]

As of 2016, a new standardization effort is under way under a working group cawwed IRCv3, which focuses on more advanced cwient features wike instant notifications, better history support and improved security.[18]

Xaric, a text-based IRC cwient, in use on Mac OS X. Shown are two IRC channews and a private conversation wif de software audor.

IRC is an open protocow dat uses TCP[1] and, optionawwy, TLS. An IRC server can connect to oder IRC servers to expand de IRC network.[19] Users access IRC networks by connecting a cwient to a server.[20] There are many cwient impwementations, such as mIRC, HexChat and irssi, and server impwementations, e.g. de originaw IRCd. Most IRC servers do not reqwire users to register an account but a nick (nickname) is reqwired before being connected.[21]

The protocow specified dat characters were 8-bit but did not specify de character encoding de text was supposed to use.[15] This can cause probwems when users using different cwients and/or different pwatforms want to converse.

Aww cwient-to-server IRC protocows in use today are descended from de protocow impwemented in de irc2.4.0 version of de IRC2 server, and documented in RFC 1459. Since RFC 1459 was pubwished, de new features in de irc2.10 impwementation wed to de pubwication of severaw revised protocow documents (RFC 2810, RFC 2811, RFC 2812 and RFC 2813); however, dese protocow changes have not been widewy adopted among oder impwementations.[citation needed]

Awdough many specifications on de IRC protocow have been pubwished, dere is no officiaw specification, as de protocow remains dynamic. Virtuawwy no cwients and very few servers rewy strictwy on de above RFCs as a reference.[citation needed]

Microsoft made an extension for IRC in 1998 via de proprietary IRCX.[25] They water stopped distributing software supporting IRCX, instead devewoping de proprietary MSNP.

The standard structure of a network of IRC servers is a tree.[26] Messages are routed awong onwy necessary branches of de tree but network state is sent to every server[27] and dere is generawwy a high degree of impwicit trust between servers. This architecture has a number of probwems. A misbehaving or mawicious server can cause major damage to de network[28] and any changes in structure, wheder intentionaw or a resuwt of conditions on de underwying network, reqwire a net-spwit and net-join, uh-hah-hah-hah. This resuwts in a wot of network traffic and spurious qwit/join messages to users[29] and temporary woss of communication to users on de spwitting servers. Adding a server to a warge network means a warge background bandwidf woad on de network and a warge memory woad on de server. Once estabwished however, each message to muwtipwe recipients is dewivered in a fashion simiwar to muwticast, meaning each message travews a network wink exactwy once.[30] This is a strengf in comparison to non-muwticasting protocows such as Simpwe Maiw Transfer Protocow (SMTP) or Extensibwe Messaging and Presence Protocow (XMPP).

An IRC daemon can awso be used on a wocaw area network (LAN). IRC can dus be used to faciwitate communication between peopwe widin de wocaw area network (internaw communication).[31][32]

IRC has a wine-based structure. Cwients send singwe-wine messages to de server,[33] receive repwies to dose messages[34] and receive copies of some messages sent by oder cwients. In most cwients, users can enter commands by prefixing dem wif a '/'. Depending on de command, dese may eider be handwed entirewy by de cwient, or (generawwy for commands de cwient does not recognize) passed directwy to de server, possibwy wif some modification, uh-hah-hah-hah.[citation needed]

Due to de nature of de protocow, automated systems cannot awways correctwy pair a sent command wif its repwy wif fuww rewiabiwity and are subject to guessing.[35]

The basic means of communicating to a group of users in an estabwished IRC session is drough a channew.[36] Channews on a network can be dispwayed using de IRC command LIST,[37] which wists aww currentwy avaiwabwe channews dat do not have de modes +s or +p set, on dat particuwar network.

Users can join a channew using de JOIN command,[38] in most cwients avaiwabwe as /join #channewname. Messages sent to de joined channews are den rewayed to aww oder users.[36]

Channews dat are avaiwabwe across an entire IRC network are prefixed wif a '#', whiwe dose wocaw to a server use '&'.[39] Oder wess common channew types incwude '+' channews—'modewess' channews widout operators —[40] and '!' channews, a form of timestamped channew on normawwy non-timestamped networks.[41]

Users and channews may have modes dat are represented by singwe case-sensitive wetters[42] and are set using de MODE command.[43] User modes and channew modes are separate and can use de same wetter to mean different dings (e.g. user mode "i" is invisibwe mode whiwe channew mode "i" is invite onwy.[44]) Modes are usuawwy set and unset using de mode command dat takes a target (user or channew), a set of modes to set (+) or unset (-) and any parameters de modes need.

Some but not aww channew modes take parameters and some channew modes appwy to a user on a channew or add or remove a mask (e.g. a ban mask) from a wist associated wif de channew rader dan appwying to de channew as a whowe.[45] Modes dat appwy to users on a channew have an associated symbow dat is used to represent de mode in names repwies[46] (sent to cwients on first joining a channew[38] and use of de names command) and in many cwients awso used to represent it in de cwient's dispwayed wist of users in a channew or to dispway an own indicator for a user's modes.

In order to correctwy parse incoming mode messages and track channew state de cwient must know which mode is of which type and for de modes dat appwy to a user on a channew which symbow goes wif which wetter. In earwy impwementations of IRC dis had to be hard-coded in de cwient but dere is now a de facto standard extension to de protocow cawwed ISUPPORT dat sends dis information to de cwient at connect time using numeric 005.[47][48]

There is a smaww design fauwt in IRC regarding modes dat appwy to users on channews: de names message used to estabwish initiaw channew state can onwy send one such mode per user on de channew,[46] but muwtipwe such modes can be set on a singwe user. For exampwe, if a user howds bof operator status (+o) and voice status (+v) on a channew, a new cwient wiww be unabwe to see de mode wif wess priority (i.e. voice). Workarounds for dis are possibwe on bof de cwient and server side but none are widewy impwemented.

A Channew Operator is a cwient on an IRC channew dat manages de channew. IRC Channew Operators can be easiwy seen by de "@" symbow prefixed to deir name, or a Latin wetter "+o"/"o". On most networks, an operator can:

There are awso users who maintain ewevated rights on deir wocaw server, or de entire network; dese are cawwed IRC operators,[54] sometimes shortened to IRCops or Opers (not to be confused wif channew operators). As de impwementation of de IRCd varies, so do de priviweges of de IRC operator on de given IRCd. RFC 1459[54] cwaims dat IRC operators are "a necessary eviw" to keep cwean state of de network, and as such dey need to be abwe to disconnect and reconnect servers. Additionawwy, to prevent mawicious users or even harmfuw automated programs from entering IRC, IRC operators are usuawwy awwowed to disconnect cwients and compwetewy ban IP addresses or compwete subnets. Networks dat carry services (Nickserv et aw.) usuawwy awwow deir IRC operators awso to handwe basic "ownership" matters. Furder priviweged rights may incwude overriding channew bans (being abwe to join channews dey wouwd not be awwowed to join, if dey were not opered), being abwe to op demsewves on channews where dey wouwd not be abwe widout being opered, being auto-opped on channews awways and so forf.

A hostmask is a uniqwe identifier of an IRC cwient connected to an IRC server.[55][56] IRC servers, services, and oder cwients incwuding bots can use it to identify a specific IRC session, uh-hah-hah-hah.

The format of a hostmask is nick!user@host. The hostmask wooks simiwar to, but shouwd not be confused wif an e-maiw address.

The nick part is de nickname chosen by de user and may be changed whiwe connected. The user part is de username reported by ident on de cwient.[57] If ident is not avaiwabwe on de cwient, de username specified when de cwient connected is used after being prefixed wif a tiwde.[58]

The host part is de hostname de cwient is connecting from. If de IP address of de cwient cannot be resowved to a vawid hostname by de server, it is used instead of de hostname.

Because of de privacy impwications of exposing de IP address or hostname of a cwient, some IRC daemons awso provide privacy features, such as InspIRCD or UnreawIRCD's "+x" mode. This hashes a cwient IP address or masks part of a cwient's hostname, making it unreadabwe to users oder dan IRCops. Users may awso have de option of reqwesting a "virtuaw host" (or "vhost"), to be dispwayed in de hostmask to awwow furder anonymity. Some IRC networks such as Freenode use dese as "cwoaks" to indicate dat a user is affiwiated wif a group or project.[59]

Issues in de originaw design of IRC were de amount of shared state data[60][61] being a wimitation on its scawabiwity,[62] de absence of uniqwe user identifications weading to de nickname cowwision probwem,[63] wack of protection from netspwits by means of cycwic routing,[64][65] de trade-off in scawabiwity for de sake of reaw-time user presence information,[66] protocow weaknesses providing a pwatform for abuse,[67] no transparent and optimizabwe message passing,[68] and no encryption, uh-hah-hah-hah.[69] Some of dese issues have been addressed in Modern IRC.

Because IRC connections are usuawwy unencrypted and typicawwy span wong time periods, dey are an attractive target for DoS/DDoS attackers and hackers. Because of dis, carefuw security powicy is necessary to ensure dat an IRC network is not susceptibwe to an attack such as a takeover war. IRC networks may awso K-wine or G-wine users or servers dat have a harming effect.

Some IRC servers support SSL/TLS connections for security purposes. This hewps stop de use of packet sniffer programs to obtain de passwords of IRC users, but has wittwe use beyond dis scope due to de pubwic nature of IRC channews. SSL connections reqwire bof cwient and server support (dat may reqwire de user to instaww SSL binaries and IRC cwient specific patches or moduwes on deir computers). Some networks awso use SSL for server to server connections, and provide a speciaw channew fwag (such as +S) to onwy awwow SSL-connected users on de channew, whiwe disawwowing operator identification in cwear text, to better utiwize de advantages dat SSL provides.[70][71]

IRC served as an earwy waboratory for many kinds of Internet attacks, such as using fake ICMP unreachabwe messages to break TCP-based IRC connections (nuking) to annoy users or faciwitate takeovers.

One of de most contentious technicaw issues surrounding IRC impwementations, which survives to dis day, is de merit of "Nick/Channew Deway" vs. "Timestamp" protocows. Bof medods exist to sowve de probwem of deniaw-of-service attacks, but take very different approaches. The probwem wif de originaw IRC protocow as impwemented was dat when two servers spwit and rejoined, de two sides of de network wouwd simpwy merge deir channews. If a user couwd join on a "spwit" server, where a channew dat existed on de oder side of de network was empty, and gain operator status, dey wouwd become a channew operator of de "combined" channew after de netspwit ended; if a user took a nickname dat existed on de oder side of de network, de server wouwd kiww bof users when rejoining (i.e., 'nick-cowwision'). This was often abused to "mass-kiww" aww users on a channew, dus creating "opwess" channews where no operators were present to deaw wif abuse. Apart from causing probwems widin IRC, dis encouraged peopwe to conduct deniaw of service attacks against IRC servers in order to cause netspwits, which dey wouwd den abuse.

The nick/channew deway (abbreviated ND/CD) sowution to dis probwem is very simpwe. After a user signs off and de nickname becomes avaiwabwe, or a channew ceases to exist because aww its users parted (as often happens during a netspwit), de server wiww not awwow any user to use dat nickname or join dat channew, untiw a certain period of time (de deway) has passed. The idea behind dis is dat even if a netspwit occurs, it is usewess to an abuser because dey cannot take de nickname or gain operator status on a channew, and dus no cowwision of a nickname or 'merging' of a channew can occur. To some extent, dis inconveniences wegitimate users, who might be forced to briefwy use a different name after rejoining (appending an underscore is popuwar).

The awternative, de timestamp or TS protocow, takes a different approach. Every nickname and channew on de network is assigned a timestamp – de date and time when it was created. When a netspwit occurs, two users on each side are free to use de same nickname or channew, but when de two sides are joined, onwy one can survive. In de case of nicknames, de newer user, according to deir TS, is kiwwed; when a channew cowwides, de members (users on de channew) are merged, but de channew operators on de "wosing" side of de spwit wose deir channew operator status.

TS is a much more compwicated protocow dan ND/CD, bof in design and impwementation, and despite having gone drough severaw revisions, some impwementations stiww have probwems wif "desyncs" (where two servers on de same network disagree about de current state of de network), and awwowing too much weniency in what was awwowed by de 'wosing' side. Under de originaw TS protocows, for exampwe, dere was no protection against users setting bans or oder modes in de wosing channew dat wouwd den be merged when de spwit rejoined, even dough de users who had set dose modes wost deir channew operator status. Some modern TS-based IRC servers have awso incorporated some form of ND and/or CD in addition to timestamping in an attempt to furder curb abuse.

Most networks today use de timestamping approach. The timestamp versus ND/CD disagreements caused severaw servers to spwit away from EFnet and form de newer IRCnet. After de spwit, EFnet moved to a TS protocow, whiwe IRCnet used ND/CD.

In recent versions of de IRCnet ircd, as weww as ircds using de TS6 protocow (incwuding Charybdis), ND has been extended/repwaced by a mechanism cawwed SAVE. This mechanism assigns every cwient a UID upon connecting to an IRC server. This ID starts wif a number, which is forbidden in nicks (awdough some ircds, namewy IRCnet and InspIRCd, awwow cwients to switch to deir own UID as de nickname).

If two cwients wif de same nickname join from different sides of a netspwit ("nick cowwision"), de first server to see dis cowwision wiww force bof cwients to change deir nick to deir UID, dus saving bof cwients from being disconnected. On IRCnet, de nickname wiww awso be wocked for some time (ND) to prevent bof cwients from changing back to de originaw nickname, dus cowwiding again, uh-hah-hah-hah.

The first IRC server, towsun, uh-hah-hah-hah.ouwu.fi, a Sun-3 server on dispway near de University of Ouwu computer centre. (2001)

There are dousands of running IRC networks in de worwd. They run various impwementations of IRC servers, and are administered by various groups of IRC operators, but de protocow exposed to IRC users is very simiwar, and aww IRC networks can be accessed by de same cwient software, awdough dere might be swight incompatibiwities and wimited functionawity due to de differing server software impwementations.

The wargest IRC networks have traditionawwy been grouped as de "Big Four"[72][73][74][75]— a designation for networks dat top de statistics. The Big Four networks change periodicawwy, but due to de community nature of IRC dere are a warge number of oder networks for users to choose from.

(where items encwosed widin brackets ([,]) are optionaw) to be used to (if necessary) connect to de specified host (or network, if known to de IRC cwient) and join de specified channew.[78] (This can be used widin de cwient itsewf, or from anoder appwication such as a Web browser). irc is de defauwt URI, irc6 specifies a connection to be made using IPv6, and ircs specifies a secure connection, uh-hah-hah-hah.

Per de specification, de usuaw hash symbow (#) wiww be prepended to channew names dat begin wif an awphanumeric character—awwowing it to be omitted. Some impwementations (for exampwe, mIRC) wiww do so unconditionawwy resuwting in a (usuawwy unintended) extra (for exampwe, ##channew), if incwuded in de URL.

Some impwementations awwow muwtipwe channews to be specified, separated by commas.[1]

Cwient software exists for various operating systems or software packages, as weww as web-based or inside games. Many different cwients are avaiwabwe for de various operating systems, incwuding Windows, Unix and Linux, Mac OS X and mobiwe operating systems (such as iOS and Android). On Windows, mIRC is one of de most popuwar cwients.[79]

Some programs which are extensibwe drough pwug-ins awso serve as pwatforms for IRC cwients. For instance, a cwient cawwed ERC, written entirewy in Emacs Lisp, is incwuded in v.22.3 of Emacs. Therefore, any pwatform dat can run Emacs can run ERC.

A typicaw use of bots in IRC is to provide IRC services or a specific functionawity widin a channew such as to host a chat-based game or provide notifications of externaw events. However some IRC bots are used to waunch mawicious attacks such as deniaw of service, spamming, or expwoitation, uh-hah-hah-hah.[87]

A program dat runs as a daemon on a server and functions as a persistent proxy is known as a BNC or bouncer. The purpose is to maintain a connection to an IRC server, acting as a reway between de server and cwient, or simpwy to act as a proxy.[citation needed] Shouwd de cwient wose network connectivity, de BNC may stay connected and archive aww traffic for water dewivery, awwowing de user to resume deir IRC session widout disrupting deir connection to de server.[88]

Furdermore, as a way of obtaining a bouncer-wike effect, an IRC cwient (typicawwy text-based, for exampwe Irssi) may be run on an awways-on server to which de user connects via ssh. This awso awwows devices dat onwy have ssh functionawity, but no actuaw IRC cwient instawwed demsewves, to connect to de IRC, and it awwows sharing of IRC sessions.[89]

To keep de IRC cwient from qwitting when de ssh connection cwoses, de cwient can be run inside a terminaw muwtipwexer such as GNU Screen or tmux, dus staying connected to de IRC network(s) constantwy and abwe to wog conversation in channews dat de user is interested in, or to maintain a channew's presence on de network. Modewwed after dis setup, in 2004 an IRC cwient fowwowing de cwient-server modew, cawwed Smuxi, was waunched.[90][91]

There are numerous search engines avaiwabwe to aid de user in finding what dey are wooking for on IRC.[92][93] Generawwy de search engine consists of two parts, a "back-end" (or "spider/crawwer") and a front-end "search engine".

The back-end (spider/webcrawwer) is de work horse of de search engine. It is responsibwe for crawwing IRC servers to index de information being sent across dem. The information dat is indexed usuawwy consists sowewy of channew text (text dat is pubwicwy dispwayed in pubwic channews). The storage medod is usuawwy some sort of rewationaw database, wike MySQL or Oracwe.[citation needed]

The front-end "search engine" is de user interface to de database. It suppwies users wif a way to search de database of indexed information to retrieve de data dey are wooking for. These front-end search engines can awso be coded in numerous programming wanguages.

Most search engines have deir own spider dat is a singwe appwication responsibwe for crawwing IRC and indexing data itsewf; however, oders are "user based" indexers. The watter rewy on users to instaww deir "add-on" to deir IRC cwient; de add-on is what sends de database de channew information of whatever channews de user happens to be on, uh-hah-hah-hah.[citation needed]

Many users have impwemented deir own ad hoc search engines using de wogging features buiwt into many IRC cwients. These search engines are usuawwy impwemented as bots and dedicated to a particuwar channew or group of associated channews.

Extra modes: Whiwe de originaw IRC system used a set of standard user and channew modes, new servers add many new modes for features such as removing cowor codes from text, or obscuring a user's hostmask ("cwoaking") to protect from deniaw-of-service attacks.[citation needed]

Proxy detection: Most modern servers support detection of users attempting to connect drough an insecure (misconfigured or expwoited) proxy server, which can den be denied a connection, uh-hah-hah-hah. An exampwe is de Bwitzed Open Proxy Monitor or BOPM. This proxy detection software is used by severaw networks, awdough dat reaw time wist of proxies is defunct since earwy 2006.[94]

Additionaw commands: New commands can be such dings as shordand commands to issue commands to Services, to network operator onwy commands to manipuwate a user's hostmask.[citation needed]

Encryption: For de cwient-to-server weg of de connection SSL might be used (messages cease to be secure once dey are rewayed to oder users on standard connections, but it makes eavesdropping on or wiretapping an individuaw's IRC sessions difficuwt). For cwient-to-cwient communication, SDCC (Secure DCC) can be used.[citation needed]

Connection protocow: IRC can be connected to via IPv4, de current standard version of de Internet Protocow, or by IPv6, de next-generation version of de protocow.

There is an effort of standardization and adding new features to de IRC protocow by IRCv3 working group.[18]

IRC stiww wacks a singwe gwobawwy accepted standard convention for how to transmit characters outside de 7-bit ASCII repertoire. IRC servers normawwy[cwarification needed] transfer messages from a cwient to anoder cwient just as byte seqwences, widout any interpretation or recoding of characters. The IRC protocow (unwike e.g. MIME or HTTP) wacks mechanisms for announcing and negotiating character encoding options. This has put de responsibiwity for choosing de appropriate character codec on de cwient. In practice, IRC channews have wargewy used de same character encodings dat were awso used by operating systems (in particuwar Unix derivatives) in de respective wanguage communities:

7-bit era: In de earwy days of IRC, especiawwy among Scandinavian and Finnish wanguage users, nationaw variants of ISO 646 were de dominant character encodings. These encode non-ASCII characters wike Ä Ö Å ä ö å at code positions 0x5B 0x5C 0x5D 0x7B 0x7C 0x7D (US-ASCII: [\]{|}). That is why dese codes are awways awwowed in nicknames. According to RFC 1459, { | } in nicknames shouwd be treated as wowercase eqwivawents of [ \ ] respectivewy.[15] By de wate 1990s, de use of 7-bit encodings had disappeared in favour of ISO 8859-1, and such eqwivawence mappings were dropped from some IRC daemons.

8-bit era: Since de earwy 1990s, 8-bit encodings such as ISO 8859-1 have become commonwy used for European wanguages. Russian users had a choice of KOI8-R, ISO 8859-5[citation needed] and CP1251, and since about 2000, modern Russian IRC networks convert between dese different commonwy used encodings of de Cyriwwic script.

Muwti-byte era: For a wong time, East Asian IRC channews wif ideographic scripts in China, Japan, and Korea have been using muwti-byte encodings such as EUC or ISO-2022-JP. Wif de common migration from ISO 8859 to UTF-8 on Linux and Unix pwatforms since about 2002, UTF-8 has become an increasingwy popuwar substitute for many of de previouswy used 8-bit encodings in European channews. Some IRC cwients are now capabwe of reading messages bof in ISO 8859-1 or UTF-8 in de same channew, heuristicawwy autodetecting which encoding is used. The shift to UTF-8 began in particuwar on Finnish-speaking IRC (Merkistö(Finnish)).

Today, de UTF-8 encoding of Unicode/ISO 10646 wouwd be de most wikewy contender for a singwe future standard character encoding for aww IRC communication, if such standard ever rewaxed de 510-byte message size restriction, uh-hah-hah-hah. UTF-8 is ASCII compatibwe and covers de superset of aww oder commonwy used coded character set standards.

Technicawwy, IRC provides no fiwe transfer mechanisms itsewf; fiwe sharing is impwemented by IRC cwients, typicawwy using de Direct Cwient-to-Cwient (DCC) protocow, in which fiwe transfers are negotiated drough de exchange of private messages between cwients. The vast majority of IRC cwients feature support for DCC fiwe transfers, hence de view dat fiwe sharing is an integraw feature of IRC.[96] The commonpwace usage of dis protocow, however, sometimes awso causes DCC spam. DCC commands have awso been used to expwoit vuwnerabwe cwients into performing an action such as disconnecting from de server or exiting de cwient.

^ abcdefghijkStenberg, Daniew (29 March 2011). "History of IRC (Internet Reway Chat)". Retrieved 25 Apriw 2016. I did not experience aww of dis. I found information on various pwaces and I received information from various peopwe in order to write dis. Peopwe dat have hewped me wif dis incwude: Greg "wumpus" Lindahw, Vesa "vesa" Ruokonen, James Ng, Tuomas Heino, Richard (eagwe`s on undernet), Ari Lemmke

^ ab"IRCv3". IRCv3 Working Group. 2016. Retrieved 25 Apriw 2016. The IRCv3 Working Group is a cowwection of IRC cwient and server software audors working to enhance, maintain and standardize de IRC protocow using backwards-compatibwe extensions.

^ abCharawabidis, Awex (1999-12-15). "IRCing On The Macintosh: Ircwe". The Book of IRC: The Uwtimate Guide to Internet Reway Chat (1st ed.). San Francisco, Cawifornia: No Starch Press. p. 61. ISBN1-886411-29-8. On warge networks such as de Big Four— EFnet, IRCnet, Undernet, and DALnet— trying to wist de dousands of channews wif Ircwe awways causes you to disconnect due to de fwood of information, whiwe oder cwients can usuawwy manage de feat, if you are on a direct Edernet connection, uh-hah-hah-hah.

^"Bwitzed Open Proxy Monitor Shuts Down". The Open Proxy Monitor which has been provided by de Bwitzed IRC network has been shut down, uh-hah-hah-hah...The database was so warge dat it is near to impossibwe for de team to backup, or find a new wocation to continue de service. Added to dat, most of de team members do not possess de time anymore to keep de service running.