DareNET supports the extended form of the WHO command, commonly referred to as WHOX.
The command only shows publicly available information, hiding invisible users (the ones with the +i user mode on), unless you are sharing a channel with them.
WHO <mask> [<options> [<mask2>]]
Contains a single or comma-separated list of query filters, such as channel names, nicknames or wildcard masks.
If mask2 is specified, it overrides the first parameter. It also cannot be split into commas, but may contain spaces, making it effective to filter real names (gecos).
The options parameter allows you to specify what type of users you want listed and how you want them identified, and consist of three groups separated by a percent sign and comma, respectively.
Field matching flags describe which parts of user information must be taken into consideration. If at least one specified field matches the given criteria, the user is included in the output.
|u||Match usernames (idents)|
|i||Match numeric IP addresses|
|s||Match server names|
|r||Match real names (gecos)|
|a||Match account names|
|o||Only list IRC operators|
|d||Only list join-delayed channel members|
If no field-matching flags are specified, then server defaults to 'nushr'.
The fields part specifies which parts of the username information you want shown in the output.
|c||Show (first) channel name|
|d||Show distance in hops (hopcount)|
|f||Show channel status and the most important user modes.|
|i||Show IP address|
|l||Show idle time, in seconds|
|r||Show real name (gecos)|
|a||Show account name|
|b||Show account ID (recommended if using for access control, as account names may change)|
|o||Show oplevel (999 for users without op in the channel)|
|t||Show the 'querytype' in the reply (see below)|
The order in which field modifiers are passed is not signficant, as fields are always shown in the same order (see below).
The final portion of the options parameter, querytype, is used in-conjunction with the 't' field modifier to specify a value between 0 and 999 you'd like the server to pass back in the reply. This is useful to help clients distinguish between replies for multiple WHO commands.
When the extended syntax is used, replies are sent using the RPL_WHOISCPRL (354) numeric instead of the normal RPL_WHOREPLY (352).
:source 354 target [querytype] [channel] [user] [IP] [host] [server] [nick] [flags] [hops] [idle] [account] [accountID] [oplevel] [:realname]