13 February 2017

Connecting to Internet Relay Chat (IRC)

What do I need?

A computer, a network connection and an IRC client.

The IRC client

The client is the piece of software you will use to connect to an IRC server over your network connection, much like you use an email client to send and receive Internet mail.

There are quite a few different IRC clients around. If you are unsure of which one to choose, start with mIRC (if you run Windows) or Ircle (if you run macOS). If you are on a Unix-type system, you may already have ircII installed (try typing irc at the shell prompt). All these clients can be freely downloaded on the net.

From a user interface viewpoint, many IRC clients implement a single text area, which is used both for issuing commands (to be executed by the client or server) and for entering actual conversation (to be sent to a user or a channel). In these cases, any input that starts with a special command prefix character (usually /), is interpreted as a command. Typing text without that prefix sends the text to the selected channel or user instead.

Where do I connect to?

In order for you to connect to a specific IRC server, the host you are running the IRC client on (or the firewall or proxy you may be connecting through) must have been granted access to that server. In the case of major IRC networks, such as IRCnet, access should not be a problem since those networks are intended for public use and have servers worldwide. You will not need a password for this kind of public IRC servers.

What is the difference between an IRC server and an IRC network?

The IRC server is the software that runs on a server machine, accepting connections from end users' IRC clients such as yours, and then handles traffic so that the clients can chat together.

An IRC network is formed when two or more servers are connected together. When you chat on a server that is part of an IRC network, you will be able to talk not only to other users on the same server, but also to any user on any other server on the same network. However, users on different networks, e.g. A on IRCnet and B on EFnet, will not be able to chat with each other using normal IRC functionality. (Two servers will not form a network by merely being on the Internet together; they must be explicitly interconnected by their respective operators.)

Occasionally, on an IRC network, a routing server will reboot, a network connection will fail, or some other problem will sever a connection and cut the network in two. This is known as a net split. Until the problem is fixed and the network connected together again, the two split network portions will not communicate. All the users on the opposite side of the split will seem to suddenly quit, and their quit comment will show the two servers the split is between, e.g. [04:36] *** psyjaZz has quit IRC (irc.cs.hut.fi *.oamk.fi). If all the users on a given channel are on the same side of the split, the channel will be empty, i.e. cease to exist, on the other side of the split.

What is this about an Ident server?

You may need to set one up, as some IRC servers may otherwise refuse to accept your connection. Ident was developed at a time when normal users did not run computers, just connected their ‘dumb’ terminals to big Unix-type machines. In fact, if you are on a Unix system, you (or your system administrator) may already be running Ident.

The protocol is very simple: basically, an Internet host (such as the IRC server you are attempting to connect to) may contact the Ident server on your machine and say ‘the person using port so-and-so on your system wants to use a service I run; please tell me his user name and the kind of operating system you are running’. Your Ident server then replies with that information. Many IRC clients include Ident servers and instructions on how to set them up.

As anyone can now run an Ident server on his workstation and send any response he pleases, Ident has become rather useless for identification purposes. Many users set their servers to send a fictitious user name, and it is also common to reply UNIX for the operating system even though the system really is e.g. WIN32.

Are you are wondering how your little desktop computer suddenly turned into a server? The party that initiates a connection is the client, and the party that listens for incoming connections is the server. Thus, in order to be able to contact other servers, even large and powerful servers need to also run client software.

Let us take a simplified look at a series of typical network transactions that might take place when you connect to an IRC server:

  1. For the IRC connection, your system (the IRC client) contacts the IRC server.
  2. For the Ident lookup, the IRC server (an Ident client) contacts your system (the Ident server).
  3. For the reverse DNS lookup, the IRC server (a DNS client) contacts its DNS server.
  4. The DNS server did not have the answer available itself, so it (now a DNS client) contacts another DNS server.

Note that if your firewall silently drops Ident queries, establishing the IRC connection may take a long time, up to several minutes, since the IRC server might wait for the Ident connection attempt to time out.

Do not be intimidated by the above ‘nice to know’ stuff; often all you need to do is check a box in your IRC client options menu.

Your IRC nickname

Before logging on, you will need to decide on a nickname, such as ImANewbie or Chatter69. Your nickname is what other IRC users primarily will know you as; it will show up whenever you join or part a channel, send a private message, and so on. It can be up to nine characters long.

Unless your real first name is reasonably exotic it will probably already be taken, so try to make up something unique instead. Nicknames on IRC are not owned, but trying to use the same nick as someone else will still cause grief such as server kills and misplaced private messages.


When you are done configuring your client, connect to the IRC server of your choice.

IRC servers usually listen at least to port 6667, but if you know that the server you will connect to listens to a different port number, you can tell your client to connect there instead.