People are always asking how to find other people on IRC. Speedy writes a comprehensive article for #MircHelp's site just for this purpose.

How to find people on IRC speedy

IRC allows you to chat in chat rooms called "channels" with anyone who is in there at that time. Each channel has a unique name, usually identifying the topic discussed in it. For instance, in #computers you would expect to find people talking about computers, while in #weather you'll find people talking about weather updates. But what if you want to find other people? For instance, how to find people from a certain country or perhaps from the same Internet Service Provider (ISP) with you? IRC doesn't have "user profiles" like some instant messengers do, to search by country or age or sex or musical preferences. On IRC, you can only search among the people online at that moment (not those who are offline) and only for the information that appears in their whois: nickname, ident and hostname. Example of a whois output:

/whois Grandpa

Grandpa is reallyold@123.456.789.atlanta.southwesternbell.com * I might be moving slow, but I'm moving!
Grandpa on #OldPeopleChat #OldRichAndSingle
Grandpa using *.undernet.org The Undernet Underworld
Grandpa End of /WHOIS list.

The first line tells us the nickname (Grandpa), the ident (reallyold – the part in front of the @) and the hostname (123.456.789.atlanta.southwesternbell.com – the computer address of Grandpa) followed by the "Real name". IRC servers provide two commands you can use to search for people based on certain keywords. They are: /who and /whois, each of them must be followed by a search keyword. The server will search for those keywords in the nickname, ident or hostname, and return a list of matches. If you provide a simple word after the command, the server will try to find a person with that nickname. For instance, /whois Grandpa or /who Grandpa will only return the information about a person with the nickname Grandpa, if that nickname is being used by someone. If you use wildcards in that word, the server will return all people matching it. * is a wildcard used to replace any number of characters, while ? is a wildcard used to replace a single character. For instance: Mar? will find Mary and Marc, but not Mar or Marie (different number of letters). Mar* will find all of them. *ommy* will find ommy, Tommy, ommyT, TommyT, SirTommy, Mommy, happymommy, because they all contain ommy and have any letters before or after that. Therefore, to find someone with nicknames starting with Anna, you'll run /who Anna* or /whois Anna*. To find someone with old in any part of the nickname or ident or host, you will type /who *old* or /whois *old*. To find everyone from SouthWesternBell.com, you can use /who *.southwesternbell.com or /whois *.southwesternbell.com. If your keyword is too broad and returns too many nicknames, the IRC server will only return a limited number of results and invite you to restrict your search keyword to get fewer matches. That's why you can't search for everyone who is online with the /who * command.

Pretty easy so far, isn't it? You'll get better with practice. Both /who and /whois commands return lists of matches. The difference between the commands is the level of detail in the list. /who only displays the minimum information about the people matching your search keyword: nickname, ident, hostname and real name – exactly what you get in the first line of whoising a single nickname. On the other hand, /whois returns a complete whois result for each of the nicknames found, including the list of channels each person is on, away status and so on. /who can also be used with a channel name: /who #OldRichAndSingle – this will give you a simple list of nicknames in that channel. /whois cannot be used to display complete information about all nicknames in a channel. When you use the /who command, you will also observe some interesting characters in the result, for example:

Grandpa H reallyold@123.456.789.atlanta.southwesternbell.com :3 I might be moving slow, but I'm moving!

The meaning of the H is that the nickname is "here". If a G appeared instead, it meant the nickname was "Gone", or set away (with the /away command). The meaning of the :3 is the number of "hops" between you and that nickname. IRC servers are interconnected in a long "chain", passing messages from nicknames connected to one server to nicknames connected to another server. The number 3 here indicates that the message from you to Grandpa will pass through 3 different IRC servers.

Are you still with me? OK, let's move on to nickname and channel modes. Pretty often you will discover that the /who and /whois commands won't return too many people, even that there are tens of thousands of people online. It's strange not to find anyone else from your Internet provider, or to get an empty list when you try to see who's in a channel without joining it. Why does that happen? It's because of a nickname mode, "i", that stands for "invisible". To make yourself invisible, use the command: /mode YourNickname +i . To remove invisible mode, type: /mode YourNickname –i. This invisibility has nothing to do with not being "seen" by other people in the channels you're in. It is only used to tell the IRC server that you don't want your nickname to appear in the results of /who and /whois searches, because you don't want to be found and disturbed by people you don't know and who are not in the same channels with you. As a result, /who and /whois commands will not return any nicknames set invisible, unless you are in the same channel with those people (and can "see" them as a result).

Why is this invisible mode important? Because it greatly restricts the results of /who and /whois searches. Spam bots automatically sending private messages to everyone found online have been an increasing problem, and setting yourself invisible is one of the ways to protect yourself. Many people set themselves invisible automatically when they connect to the IRC server (mIRC has an option for "Invisible mode" in Options – Connect) to prevent getting spammed. Some IRC servers automatically set everyone invisible when they connect. If you try to use /who #channelname to find out who is in a channel without joining it, in many cases you will get an empty list. There are two possible reasons for this: either all nicknames in the channel are set invisible, or the channel itself is set "secret" or "private", to prevent the IRC server from showing who's inside in /who and /whois results. Keep in mind that if you are in a channel with other people, they are "visible" to you even if they are set invisible and if the channel is marked private or secret. The IRC server will be able to search them and show them in /who and /whois results just because you are in the same channel with them. As a consequence, it is pretty difficult to find people who are not in the same channels with you because of invisible mode, but these commands are equally useful for searching for people in the same channels with you by your own filters.

Written by puterfixer