This is a section of the IRC User's Survival Guide. The previous section was "Getting connected".
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:
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.*).
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 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).
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 us 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.
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.
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 — teenagers 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.
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 has been 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.
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.
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.
If you are prevented from joining the channel of your choice, chances are that one or more of the following circumstances exist:
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.
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.
When you want to leave the channel, issue the PART command, as in /PART #mychannel.
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.
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.
| 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 |
Use the command QUIT, followed by an optional goodbye message, e.g. /QUIT See you all tomorrow.
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. If the kill is generated by a human, the reason is usually spelled out quite clearly. Server kills tend to be more cryptic, but are explained on Christophe Kalt's site.
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.
Next section: "Power user stuff".
All content © 2000–2008 Thor Kottelin, unless otherwise indicated. Any trademarks or registered trademarks mentioned on this site belong to their respective owners. Content and techniques used on this site may be available for licensing; for details, please contact the webmaster.
Conventional hyperlinking to any content on this site is highly welcomed. However, the work you are viewing must not be shown, even partly, in a context inferring or claiming it to be part of, or sponsored by, any other organization or site. Such prohibited techniques include (but are not limited to) framesets, interstitial pages, kiosk mode pop-ups, and reverse proxies.