This is a AKA Nick Tracker Script that keeps track of nickname usage/changes based on !@Hostmask match. By default, the script will track the last 21 nicknames used by each host mask, but this can be changed by changing the MaxNicks Alias in the setup portion of the script.
By Default, this script will also display the matching AKA nicks when someone joins. This can be turned off by changing the JoinDisplay alias , as directed in the setup portion of the script.
Example Output:
[22:07:08] * Mule[Zapper] (~FoSho@3d8d9d00.1377149a.res.rr.com) has joined #tttest
AKA MuleZapper AKA MuleTrap MuleDrill MuleBull PowerMule MuleZap MuleCrap MuleZapper
If you choose not to use the automatic on join display, you can still do manual checks by right clicking a nick in the nicklist and;
Selecting AKA >> Check NickName Will do a Manual check of the selected Nick.
Selecting AKA >> Cleanup NickName Will remove Nicknames from the selected nick that end in 4 or more numbers.(ie Unknown1234)
Selecting AKA >> Clear NickName Will reset the history of the selected nick.
AKA >> AKA Search Dialog will bring up a dialog that you can use to do more thorough searches as well as searching nicks that are offline.
To use the dialog, just enter a name or hostmask and click search. *Note that you must tick the radio buttons below the search box to reflect the type of search you are doing.
Once you have some results in the listbox, you can click "Check Selected" to return the nickname list associated with the selected hostmask.
"Copy to Clipboard" will copy the hostmask minus the network name to your clipboard for banning etc.
;AKA Nick Tracker by Ford_Lawnmower irc.mindforge.org #USA-Chat
;*****************************************************************************;
;**Start Setup
;Change JoinDisplay, below, for On Join AKA Display. On = 1 - Off = 0
alias -l JoinDisplay { return 1 }
;Change MaxNicks, below, to the number of nicknames you want to store for each hostmask. I wouldn't go over 400 with this ;/
alias -l MaxNicks { return 20 }
;Change AKALogo, below, To the text you want displayed before each AKA result.
alias -l AKALogo { return 06 05A06K07A 06 }
;**End Setup
;*****************************************************************************;
On *:Join:#: {
if ($nick == $me) { .enable #AKAInit | who $chan }
NickNamesAdd $nick $+($network,$wildsite)
if ($JoinDisplay) { .timerNickNames $+ $nick 1 2 NickNames.display $nick $chan $network $wildsite }
}
on *:Nick: { NickNamesAdd $newnick $+($network,$wildsite) $nick }
alias -l NickNames.display {
if ($gettok($hget(NickNames,$+($3,$4)),0,126) > 1) {
echo -g $2 $AKALogo $+(09,$1) $AKALogo 07 $mid($replace($hget(NickNames,$+($3,$4)),$chr(126),$chr(44)),2,-1)
}
}
alias -l NickNamesAdd {
if ($hget(NickNames,$2)) {
if (!$regex($hget(NickNames,$2),/~\Q $+ $1 $+ \E~/i)) {
if ($gettok($hget(NickNames,$2),0,126) <= $MaxNicks) {
hadd NickNames $2 $+($hget(NickNames,$2),$1,~)
}
else {
hadd NickNames $2 $+($mid($hget(NickNames,$2),$pos($hget(NickNames,$2),~,2)),$1,~)
}
}
}
else {
hadd -m NickNames $2 $+(~,$1,~,$iif($3,$+($3,~)))
}
}
alias -l Fix.All.MindUser {
var %Fix.Count = $hfind(NickNames,/[^~]+[0-9]{4}[~$]/,0,r).data
while (%Fix.Count) {
if ($Fix.MindUser($hget(NickNames,$hfind(NickNames,/[^~]+[0-9]{4}[~$]/,%Fix.Count,r).data))) {
echo -ag Record %Fix.Count - $v1 - Was Cleaned
hadd NickNames $hfind(NickNames,/[^~]+[0-9]{4}[~$]/,%Fix.Count,r).data $v1
}
dec %Fix.Count
}
}
alias -l Fix.MindUser { return $regsubex($1,/[^~]+[0-9]{4}[~$]/g,$null) }
menu nicklist {
-
.AKA
..Check $$1: {
if ($gettok($hget(NickNames,$+($network,$address($1,2))),0,126) > 1) {
NickNames.display $1 $active $network $address($1,2)
}
else { echo -ag $AKALogo $+(09,$1) 07has not been known by any other nicknames while I have been watching. }
}
..Cleanup $$1:hadd NickNames $+($network,$address($1,2)) $fix.minduser($hget(NickNames,$+($network,$address($1,2))))
..Clear $$1:hadd NickNames $+($network,$address($1,2)) $+(~,$1,~)
..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search
-
}
menu status,channel {
-
.AKA
..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search
..Clean All Records:Fix.All.Minduser
-
}
dialog AKA_Search {
title "AKA Search Engine"
size -1 -1 206 221
option dbu
edit "", 1, 8 5 149 10, autohs
button "Search", 2, 163 4 32 12
radio "Search HostMask", 4, 61 22 55 10
radio "Search Nicknames", 5, 123 22 56 10
list 6, 8 38 190 169, sort extsel vsbar
button "Check Selected", 7, 67 206 40 12
button "Close", 8, 160 206 38 12, cancel
box "Search Type", 3, 11 17 183 18
button "Copy to Clipboard", 9, 111 206 46 12
}
On *:Dialog:Aka_Search:init:*: { did -c $dname 5 }
On *:Dialog:Aka_Search:Sclick:2,7,9: {
if ($did == 2) && ($did($dname,1)) {
did -r $dname 6
var %search $+(*,$v1,*), %type $iif($did($dname,5).state,data,item), %matches = $hfind(NickNames,%search,0,w). [ $+ [ %type ] ]
while (%matches) {
did -a $dname 6 $hfind(NickNames,%search,%matches,w). [ $+ [ %type ] ]
dec %matches
}
did -c $dname 6 1
}
elseif ($did == 7) && ($did($dname,6).seltext) { echo -ga $AKALogo 07 $mid($replace($hget(NickNames,$v1),$chr(126),$chr(44)),2,-1) }
elseif ($did == 9) && ($did($dname,6).seltext) { clipboard $mid($v1,$pos($v1,*,1)) }
}
On *:Start:{
if (!$hget(NickNames)) { hmake NickNames 10 }
if ($isfile(NickNames.hsh)) { hload NickNames NickNames.hsh }
}
On *:Exit: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }
On *:Disconnect: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }
On *:Unload: { hfree NickNames }
#AKAInit Off
Raw 352:*: { haltdef | NickNamesAdd $6 $+($network,$address($6,2)) }
Raw 315:*: { haltdef | .disable #AKAInit }
#AKAInit End
Hello I need help from somebody. I've two kind of scripts, one works with !@host and other one works with !ident@.host . My scripts work fine but in the 1st case when i am connected in 2/3 channells concurrently , I get wrong nick tracking detections, I mean some nicks which don't belong to the users which I monitor and this happens even if the person does not use bnc or vhost or proxies. In the second case, if the person changes his identd i am not able to track the nicks and if they use mibbit or androirc and much people are connected with the same domain, i can't get an accurate detection, this happens because mibbit or android IRC use a unique id for all members.
I know that the 1st case is the best solution ( !*@host ) because it works on user's host but I don't know how to prevent wrong nick detection.
If you can help me, I am ready to show you such scripts and any suggestion or tips will be really appreciated.
After a few days a friend of mine told me i that the !ident@ address is a string. After that i searched how to manipulate a string in the mSL.
It has not that hard and now a cloned the AKA script twice. I have now 3 versions:
The 1st is the original
In the 2nd one i used $network,$address($1,3) insted of $network,$address($1,2). It returns *!xhsqygtsw@.63D4284.FBF7C3B7.IP
The last one was the hardest to figure out... This is where i used the string. The code looks like this :
*$network, $replacecs($remove($address($1,0),$right($address($1,2), -4)),$right($remove($address($1,0), $right($address($1,2), -4)), 1),@)**
And it returns the full host !sxhsqygtsw@ without replacing the first letter with a wildcard (*)
Also i changed the file names in which the database is stored.
I uploaded the codes on Scriptbin :
For !xhsqygtsw@.63D4284.FBF7C3B7.IP use the following link to see the code... i removed the menu box (it's commented).. so if you want it back you can remove / and /
For usage you need to type /haka You can change this in line 52 to fit your needs.
Also i added /ofhaka !xhsqygtsw@.63D4284.FBF7C3B7.IP This is how to use it, and it can search the "database" for nicks if there are any. I use this if i'm searching for someone who just quit.
http://scriptbin.net/view/5d166a8e
And for the one that gave me headaches for !sxhsqygtsw@
The menu box it commented just not to interfere with the other scripts
For usage type /iaka You can change this in line 52 to fit your needs.
Also i added /ofiaka !sxhsqygtsw@ This is how to use it, and it can search the "database" for nicks if there are any. I use this if i'm searching for someone who just quit.
http://scriptbin.net/view/c397ef33
The commented syntax from line 66 to 73 is used in the script made by Ford_Lawnmower
The syntax will show the nicknames for the specified nick if there are any and will give a whois afterwords.
Also the scripts don't interfere with each other... So u can use all 3 of them
I added this line in the script from Ford_Lawnmower
alias akall {
/aka $1
/iaka $1
/haka $1
}
This will show the results from all 3 databases :-)
I hope this helps someone... And many thanks to Ford_Lawnmower for this great script.
Wonderful script. Just a typo (I think): in clear and cleanup should be hdel instead of hadd.
I also added an alias to display all the users in a room at once:
alias akaall {
var %max = $nick(#,0)
var %c = 1
while (%c <= %max) {
var %nick = $nick(#,%c)
if ($gettok($hget(NickNames,$+($network,$address(%nick,2))),0,126) > 1) {
NickNames.display %nick $active $network $address(%nick,2)
}
inc %c 1
}
}
Thanks a lot Ford, you are a very good scripter.
is there any identifier for the host address only ? like !user@ and not !user@.host
the $address($nick,3) does not help me very much... cuz some ppl use irc and the ident is the same so the ip allways changes...
(18:12:07) Spinti89 (Spinti89@F1CD9FA3.E669A6F2.32EE8F75.IP) has joined #Romania
(18:15:07) Spinti89 (Spinti89@6D2472FD.6B3C843A.5963698.IP) has joined #Romania
any ideeas ?
Hello a piece of help please. How can i include the previous nicks in a /whois response? i want it to say something like this:
[Whois] Guest_763 has also used nicknames: Guest_7631 Guest_7362
I know i have to put it under the raw 318 like a common chans alias i have but i am not sure how to put that one
There is a alias for this in the script.
Nicknames.Display : If you use this outside the script you will have to change it from : alias -l Nicknames.Display : to : alias Nicknames.Display : Just remove the "-l" from the alias so it's no longer local.
If you call it from inside the script, you don't have to change anything.
Syntax : /Nicknames.Display Nick Channel/Window
Example: /Nicknames.Display Ford_Lawnmower #Script-Help
Ok i changed that but how can i use it in the whois? btw i use your whois remote. i have this line under raw 318:
Echo -a 4 4[6W14hois4] 14AKA Nicks:4 ---- | haltdef
what should i put in the place of the ---- for it to work? the thing is i may need to whois a user who is not in the channel i am looking at and i want the nicks to appear
@parad0x30 You will have to add this line above that one:
$Nicknames.Display($2,$active,$network,$address($2,2))
You will also have to change the Nicknames.display alias in the aka script to this:
alias NickNames.display {
if ($gettok($hget(NickNames,$+($3,$4)),0,126) > 1) {
echo $iif($2 == Status Window,-gs,-g $2) $AKALogo $+(09,$1) $AKALogo 07 $mid($replace($hget(NickNames,$+($3,$4)),$chr(126),$chr(44)),2,-1)
}
}
Hey Ford, I was wondering if you ever found a workaround for Eirwyn's question regarding entire ident@hostmask?
The Pastebin link you provided didn't seem to work for him/her and it doesn't work for me either. Great script, but I get a lot of people using Mibbit in my channel, so it's almost unusable for me, as you can see from this section of the NickNames.hsh:
OperaNet!@ircip2.mibbit.com
~Conny~JBRUU~
OperaNet!@ircip1.mibbit.com
~Robot~Conny~JBRUU~
OperaNet!@ircip3.mibbit.com
~Robot~JBRUU~
@untouchable
*The plus sign means at the same time. ie ctrl+c means press ctrl and c at the same time
Great script which is generally useful, but i've found that on some occasions I'm seeing multiple nicks for people who have only one.
On one occasion I made a note of some of the alternatives on a friend's Nick and waited for them to log into the site and then checked their IP - it's different from the original nick I ran AKA on. How is that possible?
Hi I'm using mIRC 7.22 i loaded this on remotes but it doesnt show me AKA when someones join neither when i click right the nick on user list I tried joining clones to my channel and doesnt show AKA it only keep saying AKA nick has not been known by any other nicknames while I have been watching. can anyone help?
Edit: anyways script working fine now :D
I like this . I have used it a while now. There are two things I wish it had. 1. a highlight /delete function to remove entries on the list after you've done a search. And 2. , to have the nicks you get when clicking "check selected", to show up in its own @window.
When I am checking hosts and clicking "check selected" , the nicks pop up in the active window and get lost in the massive posts. I cannot copy paste a group of nicks when I have to go hunting for them in the midst of chatters posts. A separate window including in the dialogue ( with scroll ability) would eliminate this issue for me.
Like it though. I use it daily and constantly
DS
@penelope Sending the info to a separate window could be done but I'm not sure how useful it would be.
To get the aka for a user in a channel you can always just right click the nickname and select AKA - check nick.
You can also bring that info up with ctrl+f Nickname with a few clicks.
You may also add a section of code like this to your remotes:
alias CheckOn { window $+(@,$$1) | filter # $+(@,$$1) $+(*,$$1-,*) }
After this is added: Just type /checkon NickNameHere In the channel window and a window will open with all mentions of that nickname, including the aka line.
@penelope
If you change the return to 0 , the script will NOT show you a list of previous nicknames for each person when they join a channel.
If you leave the return at 1 , When someone joins a channel it will show you their previous nicknames.
There is no reason to change anything here unless you don't want to see the previous nicknames on join.
This script works fine without changing anything.
maybe soccerboy has never changed his nick !