# Advanced trace, Trace with address/nick checking for matches. /trace should # work as normal, but this is BETA version so I don't give any guarantees. # Usage: /at
# Examples: /at *.ca List all clients from .ca on this server # /at *.netcom.com igc.* List all clients from .netcom.com on igc.* # Or: /nt # Examples: /nt Foo* List all connections with nickname starting with Foo # Or: /tt # Examples: /tt Operator List all operator connections # In case you're wondering, this is only useful for IrcOps. # Author: Wizzu (Concept of addrtrace by abtm) # Date: 9th Jan 1996 # Modified 16th Jan 1996 # Inspiration by Kestral ;) alias at addrtrace alias addrtrace { ^assign tracematch *[$0] ^assign tracematchcount 0 ^assign tracematchserv none ^assign -tracedone mtrace $1- } alias nt nicktrace alias nicktrace { ^assign tracematch $0[*] ^assign tracematchcount 0 ^assign tracematchserv none ^assign -tracedone mtrace $1- } alias tt typetrace alias typetrace { if ([$[1]0]==[S]) { ^assign tracetype Server } if ([$[1]0]==[O]) { ^assign tracetype Operator } if ([$[1]0]==[U]) { ^assign tracetype User } if ([$[1]0]==[C]) { ^assign tracetype Connecting } if ([$[1]0]==[H]) { ^assign tracetype Handshake } if (([$[1]0]==[V])||([$[4]0]==[Serv])) { ^assign tracetype Service } if ([$[1]0]==[N]) { ^assign tracetype Newtype } if (([$[1]0]==[K])||([$[2]0]==[Un])) { ^assign tracetype Unknown } if ([$tracetype]==[]) { ^assign tracetype $0 } ^assign tracetypeclass none ^assign tracetypeserv none ^assign -tracedone mtrace $1- } alias mtrace { if ([$1]) {^assign traces $1-} {^assign -traces} #if ([$0]) {echo ??? Trace: $0} {echo ??? Trace: (local)} trace $0 } alias endtracematch { if ([$tracematch]) { #echo ??? Endtracematch $0 \($tracedone\) if ([$tracedone]!=[$0]) { ^assign tracedone $0 #echo ??? End of trace on $0. if ([$tracematchserv]!=[none]) { xecho -level crap ### Matched connections ${tracematch} on ${tracematchserv}: $tracematchcount } { xecho -level crap ### No matches on $0. } if ([$traces]) { ^assign tracematchcount 0 ^assign tracematchserv none timer 1 mtrace $traces } { xecho -level crap ### Tracematch finished. ^assign -tracematch ^assign -tracematchcount ^assign -tracematchserv } } { if (![$traces]) {timer 2 ^assign -tracedone} } } } alias endtypetrace { if ([$tracetype]) { #echo ??? Endtypetrace $0 \($tracedone\) if ([$tracedone]!=[$0]) { ^assign tracedone $0 #echo ??? End of trace on $0. if ([$tracetypeserv]==[none]) { xecho -level crap ### No $tracetype connections on $0. } if ([$traces]) { ^assign tracetypeserv none ^assign tracetypeclass none timer 1 mtrace $traces } { xecho -level crap ### Typetrace finished. ^assign -tracetype ^assign -tracetypeclass ^assign -tracetypeserv } } { if (![$traces]) {timer 2 ^assign -tracedone} } } } alias showconn { # $0 is the numeric response, so parameters are shifted by one if ([$tracematch]) { if (match($tracematch $4)) { xecho -level crap ### MATCH: $2 [$3] ==> $4- @ tracematchcount = [${tracematchcount + 1}] @ tracematchserv = [$1] } } { if ([$tracetype]) { if (([$0]==[$tracetype])||([$2]==[$tracetype])||([$3]==[$tracetype])) { xecho -level crap ### $0 \($2 [$3]\) ==> $4- @ tracetypeclass = [$3] @ tracetypeserv = [$1] } } { xecho -level crap ### $2 [$3] ==> $4- } } } #TRACELINK 200 #TRACECONNECTING 201 #TRACEHANDSHAKE 202 #TRACEUNKNOWN 203 #TRACEOPERATOR 204 #TRACEUSER 205 #TRACESERVER 206 #TRACESERVICE 207 #TRACENEWTYPE 208 #TRACECLASS 209 on ^200 * if ((![$tracematch])&&(![$tracetype])) { xecho -level crap ### $1 $0 \($2\) ==> $3- } on ^201 * { shoconn Connecting $0- } on ^202 * { shoconn Handshake $0- } on ^203 * { showconn Unknown $0- } on ^204 * { showconn Operator $0- } #on ^205 * if ([$tracematch]) { # if ([$match($tracematch $3)]) { # xecho -level crap ### MATCH: $1 [$2] ==> $3- # @ tracematchcount = [${tracematchcount + 1}] # @ tracematchserv = [$0] # } #} { # if ([$tracetype]==[User]) { # xecho -level crap ### User \($1 [$2]\) ==> $3- # @ tracetypeclass = [$2] # @ tracetypeserv = [$0] # } { # showconn $0- # } #} on ^205 * { showconn User $0- } #on ^206 * if (![$tracematch]) { # if ([$tracetype]==[Server]) { # xecho -level crap ### Server \($1 [$2]\) ==> $3- # @ tracetypeclass = [$2] # @ tracetypeserv = [$0] # } { # showconn $0- # } #} on ^206 * { showconn Server $0- } on ^207 * { showconn Unknown $0- } on ^208 * { showconn Newtype $0- } on ^209 * if (![$tracematch]) { if (![$tracetype]) { if ([$0]==[$S]) { xecho -level crap ### $1 [$2] connects: $3- } { xecho -level crap ### $1 [$2] connects: $3- \(from $0\) } } { #echo ??? tracetype = $tracetype if ([$2]==[$tracetypeclass]) { if ([$0]==[$S]) { xecho -level crap ### $1 [$2] connects: $3- } { xecho -level crap ### $1 [$2] connects: $3- \(from $0\) } } timer 1 endtypetrace $0 } } { #echo ??? tracematch = $tracematch timer 1 endtracematch $0 } on ^402 * { echo ### $1: no such server. if ([$tracematch]) {endtracematch $1} { if ([$tracetype]) {endtypetrace $1} { if ([$traces]) {mtrace $traces} } } } eval xecho -level crap ### Advanced trace 0.2.0 beta (based on addrtrace 0.4.1b) by Wizzu loaded. eval xecho -level crap ### Usage: ${K}at
eval xecho -level crap ### ${K}nt eval xecho -level crap ### ${K}tt