What Is IRC?

What Is IRC
Screenshot of HexChat, an IRC client for GTK environments - Wikimedia

Date First Published: 3rd June 2022

Topic: Computer Networking

Subtopic: Internet Protocols

Article Type: Computer Terms & Definitions

Difficulty: Medium

Difficulty Level: 6/10

Learn more about what IRC is in this article.

Short for Internet Relay Chat, IRC is an application-layer protocol used for real-time chatting and instant messaging with users over the internet. IRC is mostly designed for group conversations. However, it can be used for one-to-one conversations. IRC also has additional features, such as file sharing and private messaging. For example, an IRC command which begins with a forwards slash (/) can be used to request a private session with another user. Another command can then be used to share a file from a local computer.

Users connect to IRC server through an IRC client, which may be a desktop program or a web app. Examples of programs used to connect to an IRC server are:

  • Mibbit
  • IRCCloud
  • KiwilRC
  • MIRC
  •  

IRC can usually be accessed by a user running an IRC client to connect to a server. Then,  the server relays information to and from other servers on the network

IRC Commands

Command Function
/admin [target] Request the server to return information about the administrators of the server specified by [target]. [target] is either the user or the server.
/away [message] Leaves a message indicating that the user is currently going away from the IRC. (e.g. /away I'm going away to go to the shop. I will be back soon.
/cnotice [nickname] [channel] :[message] Sends a channel notice message to a specified nickname on a specified channel that bypasses flood protection limits. IRC servers will usually put a limit on the number of different targets that a user can send messages to within a certain period of time for the purpose of preventing spammers or bots from excessively sending messages to users on the network and overloading the server. This command is not officially defined in an RFC.
/connect [target server [port [remote server]] Requests the specified server to connect to the target server on a specified port. Only available to IRC operators.
/die Requests the server to close down. Only available to IRC operators.
[source] /encap [destination] [subcommand] [parameters] To encapsulate commands in order for them to be transferred across hub servers that are not yet updated to support them.
/error [error message] To report errors to other servers. Defined in RFC 1459.
/help Requests the server to display the help file. Not officially defined in an RFC.
/info [target] Returns information about the specified server, such as the server version, when it was compiled, the patch level, and when it was started. Information about the current server will be returned if [target] is not included.
/invite [nickname] [channel] To invite a specified nickname to a specified channel.
/ison [nicknames] Requests the server to see if the users in the space-separated list [nicknames] are currently on the network.
/join [channels] [keys] Specifies which users join the channels in the comma-separated list [channels] as well as the passwords in the comma-separated list [keys] if necessary. Channels that do not exist will be created.
/kick [channel] [client] :[message] Forces the specified client [client] to leave the channel. Can only be used by channel operators.
/kill [client] [comment] Forces the specified client [client] to leave the network. Can only be used by IRC operators.
/links [remote server] [server mask] Lists all the server links matching [server mask].
/list [channels] [server] Lists all the channels on the server. If a comma-separated list [channels] is entered, it will return the topics of the channel. If [server] is entered, the command will be forwarded to [server] for evaluation.
/lusers [mask] [server] Returns statistics about the size of the network.
/mode [nickname] [flags] (user) /mode [channel] [flags] [args] Used for two purposes: To set both user and channel modes.
/motd [server] Returns the message of the day on the specified server [server]. If [server] is not included, it will return the message of the day on the current server.
/names [channels] Returns a list of the users on the comma-separated list of channels by channel name.
/nick [nickname] Changes the user's IRC nickname.
/oper [username] [password] Authenticates a user as an IRC operator on that server.
/part [channels] [message] Requests a user to leave the channels in the comma-separated list. [channels]
/pass [password] Sets the IRC connection password.
/ping [server] Tests the reachability of a connection.
/primvmsg [msgtarget] [message] Sends the [message] to [msgtarget].
/quit [message] Disconnects a user from the server.
/rehash Requests a server to reread and reprocess its configuration file(s). Can only be used by IRC operators.
/rules Requests the rules of the server.
/squit [server] [comment] Requests the specified server [server] to quit the network.
/setname [new real name] Allows a user to change the real name specified when registering a connection.
/stats [query] [server] Returns statistics about a specified server [server]. If no server is specified, statistics will be returned about the current server.
/summon [user] [server] Sends users who are on the same host as [server] a messaging asking them to join the IRC.
/time [server] Requests the local time on a specified server [server]. If no server is specified, the local time will be returned for the current server.
/topic [channel] [topic] Allows the user to set the topic of the channel on [channel].
/user [username] [hostname] [servername] [realname] Used at the start of the connection to specify the username, hostname, real name.
/userhost [nickname] Returns a list of all the information about the nicknames specified in the space-separated list.
/userip [nickname] Returns the IP address of the user with the specified nickname.
version [server] Returns the version of the specified server or current server if [server] is not included.
wallops [message] Sends the specified message [message] to all connected IRC operators.

IRC Conversations

Users can join IRC conversations by entering a custom username and a channel. They can also create their own channels with a custom name. Channels are IRC groups where users can communicate with each other through typed messages. The username can contain alphanumeric characters, but not spaces. The names of channels begin with a hashtag along with the name, such as #ircchat. Even though most channels are available to the public, some are password protected. The chat process works on a client-server networking model.

After joining a channel, typed messages will appear and will be broadcasted by the server. Even though IRC systems allow channel members to type whatever they want, most popular channels have moderators, meaning that people that use the IRC system for malicious purposes, such as cyberbullying or spam can be kicked out or banned by blocking their IP address.

Advantages and Disadvantages Of IRC

The advantages of IRC are:
  • It is a quick method of online communication - IRC is ideal for long discussions, since they are live and the sent messages will appear instantly as long as the other user has an internet connection. They are an alternative to email.
  • There is no central server to IRC. Unlike chat platforms, which have centralised control, it is possible for any user to set up their own IRC server and use it in any way that they want to. 
  • If necessary, IRC chats can be logged, allowing users to take a look at the logs in the future.
  • People all over the world can join - It is possible for anyone around the world to join an IRC server, regardless of their distance. It is unnecessary for people to travel a very far distance in order for them to have a talk with someone else.
  • There is privacy - IRC has different access levels and complex channel modes.
The disadvantages of IRC are:
  • It can greatly increase the chance of internet trolls and cyberbullying - Especially with public IRC channels that anyone can join with no restrictions, they greatly increase the chance of internet trolls that post disruptive, embarrassing, controversial, or upsetting content designed to get a reaction out of people. However, popular IRC channels have moderators and rules that users must obey and users may be banned or 'kicked' if they are in violation of the rules. 'Kicking' a user out of an IRC channel means to force them to leave, but not fully ban them. 
  • It can be used to spread viruses and malware - Since IRC channels allow users to type almost anything into a text box and display what they type to other users in the IRC channel, it is possible for users to share links to viruses and malware.
  • You can never be sure of who you are talking to - When sending messages to anonymous people that you have never met in person, you can never be sure of who they are or if they're dangerous. Someone that you know in an online IRC channel may not be who they say they are.
  • There is limited chat length. The chat client line length mean that all discussions are limited to a certain amount of characters.


Feedback

  • Is there anything that you disagree with on this page?
  • Are there any spelling, grammatical, or punctuation errors on this page?
  • Are there any broken links or design errors on this page?

If so, it is important that you tell me as soon as possible on this page.