Send a CTCP VERSION to all of #emacs. This is potentially rude, so don't do this lightly.

Actually, you now need to do this manually for every single nick in the channel as simply sending the request to the channel will give you an error: "Cannot send to nick/channel".
Thus, what an OP needs to do:

# ##/msg chanserv set #emacs mlock## to remove the mode lock
# ##/ctcp #emacs version## to send a command to all the channel members
# ##/msg chanserv set #emacs mlock +Cn## to set the mode lock again

##+C## sets the mode that prevents people from sending CTCP requests to the entire channel.

##+n## prevents people from sending messages to the channel without joining it. Every channel needs this!

Place point at the beginning of the output and invoke `M-x irc-version-summary' defined as follows:

{{{
(defun irc-version-summary ()
  "Run this after you've sent a /CTCP #test VERSION."
  (interactive)
  (save-excursion
    (let ((agents))
      (while (re-search-forward "CTCP VERSION \\([a-z]\\([^- \n:/]+\\|[^- \n:/]*[-/][^- \n:/0-9]+\\)\\)?" nil t)
	(let* ((word (or (match-string-no-properties 1) "unknown"))
	       (key (replace-regexp-in-string "-" ""
		       (downcase word)))
	       (cell (or (assoc key agents)
			 (car (setq agents (cons (cons key 0) agents))))))
	  (setcdr cell (1+ (cdr cell)))))
      (setq agents (sort agents (lambda (a b) (> (cdr a) (cdr b)))))
      (pop-to-buffer (get-buffer-create "*IRC Clients*"))
      (erase-buffer)
      (dolist (item agents)
	(insert (format "%4d %s\n" (cdr item) (car item))))
      (insert "----\n"
	      (format "%4d total\n"
		      (apply '+ (mapcar 'cdr agents)))))))
}}}

----
InternetRelayChat

