Mass Whois

By chicknh8r on Feb 17, 2007

In your mirc, click alt+R to open your remotes. Copy this code and either paste it in its own file or anyone that you prefer. Now to use it just type /mwhois in the channel you would like to use this in.
However, some information may not be given if your not a IRCOP. i.e IP's and such. Props to defaulrt for helpin with this snippet.

alias mwhois {
  var %x = 1
  while (%x <= $nick(#,0)) {
    if ($nick(#,%x) != $me) { whois $nick(#,%x) }
    inc %x
  }
}
raw 311:*:{
  window @whois 0 0 450 160 arial 14
  aline @whois --------------------
  aline @whois Nick: $2
  aline @whois Host: $3 $+ @ $+ $4
  aline @whois Real name: $6-
  halt
}
raw 312:*:aline @whois Server: $3 | halt
raw 319:*:aline @whois Channels: $3- | halt
raw 317:*:aline @whois Idle: $duration($3) | halt
raw 313:*:aline @whois $2- | halt
raw 301:*:aline @whois Away: $3- | halt
raw 378:*:aline @whois IP: $7 | halt
raw 318:*:halt

Comments

Sign in to comment.
Qc   -  Feb 27, 2007

Why timers?
Just let the last response of the previous /whois command trigger the next. Its then impossible the server sendqueue overflows.
Regarding the server receivequeue, if the sendqueue never overflows, then the receivequeue doesnt either, and /whois nick1,nick2 etc doesnt suffer this problem at all, since the server sends a RAW 416 too many lines in your output, which just stops the responses after that amount, so a part of the passed nicks need to be re-whoissed.

 Respond  
LIQUID_NiTrO   -  Feb 23, 2007

The quickest and most reliable way to find all the numerics you need is to first turn on debug with /debug -p @debug, and then do a /whois on yourself with IRCop priveliges when you have an SWHOIS set. You can set an SWHOIS for yourself in your operblock; there may also be a way to temporarily set one using the OperServ RAW command (don\'t mess with that if you don\'t know what you\'re doing though, of course).
Also on large channels, it is likely to RecvQ you off. While a SendQ could be prevented by combining it into a /whois nick1,nick2,..,nickN command, this won\'t do anything for your RecvQ, since the server still has to send you the same amount of information. In order to prevent a RecvQ flood on larger channels, you should use timers... PM me if you want specific info on how.

 Respond  
Lindrian   -  Feb 19, 2007

Go check on sites, they got all the raw numerics, and most of em are ezplained aswell. Try googling.

 Respond  
chicknh8r   -  Feb 18, 2007

Thanks for the info, Qc. I have yet to learn all the raw returns. Ill update this as soon as i can. I\'ll also adjust it so that it won\'t flood disconnect oneself.

 Respond  
Qc   -  Feb 18, 2007

Just some ideas to make this better

  • If you\'re not an IRCOP you probably get a flood disconnection too, this needs a queue.
  • Some networks support doing whois nick1,nick2,...,nickN, which helps in avoiding flood disconnection. A testrun can determine this.
  • A script should not output data requested by other scripts or from command line. So the script has to store the fact it did a whois for a certain nick, and only process the response after checking it has requested it.
  • There are alot more raws that can be returned, for which you don\'t have events, they will flood the status window, since not halted.
  • Make it multiserver. Put the network name in variables, custom window names, etc.
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.