How to get IRC users list over an entire server

Solution 1:

You can use NAMES but just omit the <channel> and <server> variables to get all users.

From NAMES Wikipedia:

Returns a list of who is on the comma-separated list of <channels>, by channel name. If <channels> is omitted, all users are shown, grouped by channel name with all users who are not on a channel being shown as part of channel "*". If <server> is specified, the command is sent to <server> for evaluation.

You can use the WHOIS <nick> command to get information about a specific user.

/WHOIS buddy
*** buddy is [email protected] (Think different.)
*** on channels: @#demo #test123
*** on irc via server irc.psinet.com (PSI Net EFNet IRC Server)

This will show you what public channels a user is on, but not what secret channels they may also be connected to.

Note, however, that NAMES will not show users that have the +i ("invisible") mode set on themselves, unless you're also in a channel together with them. Since most networks set +i by default, a global NAMES will usually show only a few people who have manually set -i – not everyone on the network.

Also, on some networks, in particular the freenode IRC network, the channel list in WHOIS is affected by this mode as well.