The first thing that strikes me about this addon is how insanely comprehensive it is. The author appears to have all his bases covered and I have little doubt that any user, should they have the patience to go through the well structured help sections in both the readme and the main dialog, could benefit greatly from it. However, for purposes of conducting this review I will play the part of the average user, inattentive and careless, whose first instinct is to load the script and dive straight into it without a moment's consideration. One of the greatest features, and the one that drew me to the addon initially, is the ability to show the country a user is connecting from in channel events (join, part, quit etc.). A curious person may routinely find himself venturing to IP Whois sites to look up the location of a user with whom they are unfamiliar; this addon would serve as an indispensable attachment to his regular mIRC setup. On to the script!
Ok, loading it was trivial. I'm told that the options that piqued my interest are already enabled, so let's try connecting and joining a busy channel: #ubuntu on Freenode with its 1500 users should do the trick. Within seconds:
[13:24:02] * amatuxx (~user@p5B2E9C79.dip0.t-ipconnect.de) from Germany has joined #ubuntu
[13:24:04] * wars (~email@example.com) from China has joined #ubuntu
Note the timestamps; this script works quickly and on both hostnames and even unresolved IPs too. In fact, using the benchmark utility (accessible through popups as well as the main dialog) shows that a typical IP lookup takes an average of ~2ms on my machine. For most intents and purposes, that is instantaneous and a very impressive result. I leave the script running in the channel and open the scripts editor to glance at the code.
The script file is colossal, over 200KB! More documentation; the 'advanced features' section reveals a general purpose $ip2c() identifier geared towards scripters who plan to build upon the existing functionality of the script on the offchance that the author has neglected to include a particular feature. The code appears to be well commented, but at the same time I don't envy the scripter who takes it upon himself to try and follow it all. Scripting ettiquette seems to have been adhered to satisfactorily; names of aliases, variables etc. are verbose enough to be well understood, the code is split up into manageable routines, and the author has even simulated tabbing in his main dialog table definition so that it looks neater and more organized.
As a scripter, the portion of the code that interests me is the part aptly referred to by the author as 'the heart of the script': an alias that is given an IP and locates the range in which it lies from the 130,000+ ranges in its database. The solution is elegant: it's coded entirely in mIRC script and employs a simple binary search algorithm to locate a range in at most 17 iterations of its core loop. Measures have been taken to reduce execution time on all orders of magnitude and this routine is a prime example of what a difference a good method of data storage can make.
For a man of simple pleasures, this alias has hitherto served me with what I can safely say is all I really need. However, I haven't even scratched the surface of what's possible. I haven't mentioned its trigger response options, its extensive database update system, its performance monitors, plus the fact that it gives you complete and easy-to-use control over the list of hostname and IP entries. Download the addon and see these things for yourself, chances are you will be blown away.
My sincere compliments to the author for what must have been an extraordinarily laborious task. It's a shame that this had to be released at a time where site activity is at such a low point. Nevertheless, I hope this addon gets all the attention it deserves.