It's to some degree up to the network's IRCd . On unreal, /helpop who returns:
***** Who *****
(...)
Syntax:
/WHO [+|-][acghimnsuMRI] [args]
Flags are specified like channel modes, the flags cgmnsu all have arguments
Flags are set to a positive check by +, a negative check by -
The flags available:
Flag a: user is away
Flag c <channel>: user is on <channel>, no wildcards accepted
Flag g <gcos/realname>: user has string <gcos> in his/her GCOS,
wildcards accepted, oper only
Flag h <host>: user has string <host> in his/her hostname, wildcards are accepted
Flag i <ip>: user has string <ip> in his/her IP address
Flag m <usermodes>: user has <usermodes> set, only o/C/A/a/N for nonopers
Flag n <nick>: user has string <nick> in his/her nickname, wildcards accepted
Flag s <server>: user is on server <server>, wildcards not accepted
Flag u <user>: user has string <user> in his/her username, wildcards accepted
Behavior flags:
Flag M: check for user in channels I am a member of
Flag R: show users' real hostnames
Flag I: show users' IP addresses
For backwards compatibility, /who 0 o still shows +o users
Example: WHO +m o
Status flags:
The who command shows several flags in the returned result to indicate
different information about the user. These flags are explained below:
G - User is /away (gone)
H - User is not /away (here)
r - User is using a registered nickname
B - User is a bot (+B)
* - User is an IRC Operator
~ - User is a Channel Owner (+q)
& - User is a Channel Admin (+a)
@ - User is a Channel Operator (+o)
% - User is a Halfop (+h)
+ - User is Voiced (+v)
! - User is +H and you are an IRC Operator
? - User is only visible because you are an IRC Operator
Example:
"/who +nhM *test* *.net" will return all users
1) n > having *test* in their nickname (like "if (*test* iswm $nick)")
2) h > having *.net in their host (like "if (*.net iswm $site)")
3) M > sharing a channel with you (like "if ($comchan($nick,1))")
Note that there will be no reply of
all users who set usermode +i and who share no chan with you (assuming you are not oper
).