User Information Commands
Get detailed information about a connected user.
Syntax: WHOIS <nickname>
Response includes:
- Nickname, ident, hostname, real name
- Channels they are in (unless hidden by
+ior+p) - Server they are connected to
- Whether they are an IRC operator
- Whether they are away (and away message)
- Whether they are identified with NickServ (
+rmode) - Whether connected via SSL/TLS (
+Zmode) - Account name (if identified)
- Idle time and sign-on time
Behavior:
- If the target has
+i(Invisible), channels are hidden unless you share a channel with them - If the target has
+p(Hide channels), channels are hidden unless you share a channel - If the target has
+H(Hide Operator), IRC op status is hidden from non-operators - IRC operators can always see full information
Example:
WHOIS AliceSearch for users matching criteria.
Syntax: WHO <mask> [o]
Behavior:
- Returns users matching the mask (supports wildcards
*and?) oflag: only return IRC operators- Users with
+i(Invisible) are only shown if you share a channel with them
Examples:
WHO #general # List users in #generalWHO Alice # Info about AliceWHO *@192.168.* # Users with matching hostnameWHO * o # All IRC operatorsWHOWAS
Section titled “WHOWAS”Get information about a user who has recently disconnected.
Syntax: WHOWAS <nickname> [<count> [<server>]]
Behavior:
- Returns historical user information from the WHOWAS database
- Shows: nickname, ident, hostname, real name, and when they were last seen
Example:
WHOWAS AliceWHOWAS Alice 5 # Show up to 5 entriesUSERHOST
Section titled “USERHOST”Get hostmask information for one or more nicknames.
Syntax: USERHOST <nick1> [<nick2> ... <nick5>]
Behavior:
- Returns up to 5 nicknames with their ident and hostname
- Format:
nick[*]=+hostmask(the*indicates IRC operator)
Example:
USERHOST Alice BobResponse:
:server 302 yournick :Alice=+alice@user.example.com Bob=+bob@bob.host.orgList users currently connected to the server.
Syntax: USERS
Behavior:
- Returns a list of connected users with their ident and hostname
- Users with
+i(Invisible) may not be shown
Check if one or more users are currently online.
Syntax: ISON <nick1> [<nick2> ...]
Behavior:
- Returns a space-separated list of the provided nicknames that are currently connected
- Does not check registration or identification status
Example:
ISON Alice Bob CharlieResponse (only Alice and Charlie are online):
:server 303 yournick :Alice CharlieLUSERS
Section titled “LUSERS”Get statistics about the number of users and channels on the server.
Syntax: LUSERS
Returns:
- Number of users (visible and invisible)
- Number of IRC operators
- Number of channels
- Number of clients connected to this server
Response numerics:
251 RPL_LUSERCLIENT— “There are X users and Y invisible on Z servers”252 RPL_LUSEROP— “X IRC Operators online”253 RPL_LUSERUNKNOWN— “X unknown connection(s)”254 RPL_LUSERCHANNELS— “X channels formed”255 RPL_LUSERME— “I have X clients and 1 servers”
ACCEPT
Section titled “ACCEPT”Manage your Caller ID accept list. This controls who can PRIVMSG you when you have +g (Caller ID) mode set.
Syntax:
ACCEPT +<nick>— add a user to your accept listACCEPT -<nick>— remove a user from your accept listACCEPT *— list your current accept list
Behavior:
- When you have
+gset, only users on your ACCEPT list can send you private messages - Users not on your list who try to PRIVMSG you get an error; you receive a notification (once per session per sender)
- Accepts do not persist between sessions — your accept list is cleared on disconnect
Examples:
ACCEPT +Alice # Allow Alice to message youACCEPT -Bob # Remove Bob from your listACCEPT * # View your accept listSILENCE
Section titled “SILENCE”Manage your silence list. Users on your silence list cannot send you messages.
Syntax:
SILENCE +<mask>— add a hostmask to your silence listSILENCE -<mask>— remove from silence listSILENCE— list your silence entries
Behavior:
- Unlike ACCEPT, SILENCE blocks based on hostmasks (not just nicknames)
- Messages from matching users are silently dropped — they receive no error
- Persists for the session only (not saved across disconnects)
Examples:
SILENCE +*!*@spammer.host # Silence all users from spammer.hostSILENCE -*!*@spammer.host # Remove the silenceSILENCE # View your silence list