18 February 2017

Basic IRC usage

The user mask

In addition to simple nicknames, a more versatile way of referring to user identities on IRC is the user mask, sometimes referred to as user@host or ban mask. User masks are used e.g. when placing channel bans on the IRC server, and chances are that your IRC client uses them locally as well for specifying who should be ignored, automatically given channel operator status, etc.

The mask is constructed as follows:

  1. the nickname
  2. ! (separator character)
  3. the user name
  4. @ (separator character)
  5. the host name or IP address

Wildcards are allowed, e.g. *!*@* would cover anyone on IRC. Some servers also support the special wildcard #, which signifies one digit, and CIDR prefixes, such as *!*@192.0.2.0/23 (instead of *!*@192.0.2.* and *!*@192.0.3.*).

The nickname

Since IRC servers ‘kill’ (i.e. disconnect) duplicate nicknames on sight, the nickname is often enough to specify a user. Nicknames can, however, be changed at will, so they are not useful for control purposes; if you decide to e.g. have your IRC client ignore someone who is flooding you with unwanted messages, you do not want him to be able to just change his nickname and continue harassing you.

The user name

The user name will be either the name your IRC client provides at logon, or the user name part of your Ident server’s response. It may be preceded by a special character indicating whether the IRC server received an Ident response from your host (~ indicates missing Ident) and whether your connection is restricted (from using certain commands).

The host name or IP address

Your host name will be the DNS name for the IP address you are connecting from. If your network’s DNS service is broken, or some other problem prevents the lookup from succeeding, your user mask will contain your IP address instead.

Let’s assume my nick is john, my user name is jdoe, and the host I run my IRC client on is ws155.example.com. This can be expressed as john!jdoe@ws155.example.com. If my reverse DNS would not work, the user mask would be something like john!jdoe@10.10.10.10 instead.

Can I use someone’s user mask as his mail address?

Due to the @ character, the user@host part of the user mask looks similar to a mail address, but nevertheless it is not one. Mail sent to IRC user@host addresses on Unix systems have a certain chance of finding its way to the intended recipient since the user name probably exists and the host machine may happen to run a mail server. For the most part, however, this cannot be counted on.

Using IRC channels

One way of chatting is joining one or more channels. A channel is a group of users chatting (or idling) together. Channels are usually formed by people with something in common – teens living in the same city, fans of the same rock group, Linux enthusiasts... Any text you send to a channel will be visible to all the users on that channel (unless they have set their clients to ignore you).

Your IRC client may come with a pre-loaded list of channels, but there is no guarantee that those channels happen to be in use on your particular server or network at any given time. You can have your client download the current list of channels, but if the list is long, the server may disconnect you for flooding the connection. You may want to search on the Web instead.

The channel listing generated by your IRC server will show the channel name, the topic if one exists, and the number of users currently on that channel. Channels where new users are welcome often have an informative topic line in the language of the channel.

When you have found a suitable channel, use the command JOIN to enter it, e.g. /JOIN #mychannel or /JOIN &another. You are not restricted to sitting on one channel at a time; you may join several if you want to. I usually idle on a few different channels.

What do the # and & prefixes in channel names mean?

They exist so that channel names will be distinguished from user nicknames. If the server is not connected to an IRC network, it does not matter which prefix (# or &) it was created with. However, if the server is connected to another server (i.e. an IRC network), only # channels will work globally, across the network; & channels will be local and work only on the local server.

Who are these people with nicknames that start with a @ sign?

The channel operators (chops or chanops) are the hosts and rulers of their channel. You can recognize them by the @ prefix added to their nickname whenever it is listed in the context of that channel.

Chanops can set modes and kick and ban users as they please. There is basically no one you can complain to about having been treated unfairly by a channel operator, e.g. kick-banned for no good reason; instead, you can create a channel of your own and run that channel as you see fit.

How can I persuade the channel operators of an existing channel to op me?

Hang out on the channel frequently, acting according to the norms for that channel.

Asking for ops is one of the most counter-productive things you can do; you will look like a clueless newbie who is interested only in gaining channel operator status.

Why can’t I join the channel of my choice?

If you are prevented from joining the channel of your choice, chances are that one or more of the following circumstances exist:

  • you are banned from the channel (channel mode +b) – this does not necessarily mean that you personally are unwelcome; bans are often set to exclude anyone from a certain domain or network
  • the channel is invite-only (channel mode +i) and you have not been invited
  • the channel is keyed (channel mode +k) and you have not provided the password
  • the channel has a user limit (channel mode +l) and is full

Why can’t I talk to the channel?

If the channel is moderated (channel mode +m), you will not be able to send text to the channel unless you have been ‘voiced’ (mode +v).

Also, if you are banned from a channel while on that channel, you will not be able to talk on that channel any more. Note that merely setting a ban does not remove anyone from the channel; that is what the KICK command is for.

Can I change the topic line of the channel?

The TOPIC command may be used to associate a channel with a topic (typically displayed in conjunction with the channel), e.g. /TOPIC #mychannel This channel is all about me. If the channel mode +t is on, only channel operators may set the topic.

How do I leave a channel?

When you want to leave the channel, issue the PART command, as in /PART #mychannel.

How do I chat privately with someone?

You can chat privately with another user on the same server or network, regardless of whether either of you is on a channel or not.

You will need to know the nickname of the person you want to chat with. Most IRC users nowadays make themselves ‘invisible’ by setting user mode +i, so unless you know what channel the person you are looking for is on, you may find it very difficult to use IRC server functionality to find out what his nickname is.

When you have the nickname, do a WHOIS on it (e.g. /WHOIS MyFriend) just to be sure; then start talking. On many clients, you would be able to type e.g. /MSG MyFriend Hi there! (to simply send the message) or /QUERY MyFriend Hi there! (to open a dedicated window for chatting with MyFriend).

By the way, the native IRC command for sending a message – to a nickname or to a channel – is PRIVMSG. A related command is NOTICE; the difference between notices and normal messages is that notices never may be replied to with an automatic message. The logic behind this is preventing software components such as IRC servers from wasting resources on perhaps endless loops of automatic replies to automatic messages.

On the Internet, I can do anything I want, right?

Wrong.

IRC is supposed to be an enjoyable experience, so it is a good idea to behave as you would like for other users to behave towards you. Just log on, join a channel or two, idle for a moment so you will learn the name of the game, and then chat as you would in real life; this should keep you out of trouble.

Remember that different rules apply on different channels (group chats). Some channels encourage idling, others will kick you for it; many channels allow only certain languages, some outlaw anything but plain text, etc. Unfortunately you may not be able to find out the rules of a specific channel before you find yourself kicked for breaking them. However, better late than never; unless you are banned as well, you can re-join the channel and try not to repeat whatever behaviour got you kicked.

For some channels, a web page or some other kind of written information about the channel may be available. The channel topic may tell you how to retrieve it, or one of the nicknames (maybe a ‘bot’, an automatic IRC client) on the channel may send you a welcome message with information.

Don’ts and why-nots

Do not... as...
type in ALL CAPS it is considered shouting
send the same line of text several times, or hit Enter after every few words the conversation will scroll off the screen prematurely
send or accept unsolicited files a Trojan may do nasty things to your computer
mass-invite strangers to your channel it is annoying; you will be ignored, kicked, banned, killed and/or K-lined
output junk such as the Microsoft Chat Appears as lines, the lame Showdown advertisements or the large trout in mIRC nobody likes it; you may be kicked and/or banned
pester other users for personal information such as age, sex or location it is an invasion of privacy; use the WHOIS command instead. Of course, you may introduce yourself if you want to, and the other person will do the same if he wants to

Quitting IRC

How do I log off IRC?

Use the command QUIT, followed by an optional goodbye message, e.g. /QUIT See you all tomorrow.

Is someone really trying to kill me?

Sometimes a server may forcibly disconnect you from IRC, i.e. ‘kill’ your connection. IRC operators and server administrators can issue kill messages to get rid of abusive users. Most kills, however, are automatically generated server kills, due to nickname collisions or similar network problems. The kill notice should explain the reason for the kill.

Not nearly all involuntary disconnections are due to kills. Unless your client shows you a kill message, the disconnection was probably due to some other reason, such as flooding, not responding to a PING, or a network problem.