<-------------- THE SEVENTY-TWO CHARACTER COLUMN-OMETER --------------->
<--------1---------2---------3---------4---------5---------6---------7->

IP-Country-2.06, 2002.12.30
---------------------------
After a conversation with Katie Petrusha (RIPE Database Administration),
I've now switched to using the full RIPE database, rather than the 
statistics. Many, many thanks to her for her expert advice. The database
is now based on around 750,000 separate IP ranges.
  So, the database is now bigger and slightly slower (but not to the 
extent that anyone should notice). I think the performance hit is 
worthwhile considering the benefit of the increased accuracy. Again,
thank you Katie for the hints. If anyone from ARIN, APNIC or LACNIC is 
in a similar position to help me out with their databases, please let 
me know.
  Also, requested confirmation from the RIRs that their copyright
notices were correct, and have altered the copyright appropriately.


IP-Country-2.05, 2002.12.18
---------------------------
Jump distance to next node now stored as variable-length, which reduces
database size to 73KB.


IP-Country-2.04, 2002.12.17
---------------------------
Removed raw files. Fixed minor bug that affected *one* IP address!


IP-Country-2.03, 2002.12.16
---------------------------
Documentation upgrade.


IP-Country-2.02, 2002.12.16
---------------------------
Oops! Forgot to make clean before zipping up the distribution. My bad!


IP-Country-2.01, 2002.12.15
---------------------------
Switched to a more efficient storage mechanism, based on a binary tree.
Have already optimized the country code storage. In future revisions,
will reduce storage requirements again, so that the whole database 
occupies only (70KB). At the moment, it's around 142KB, which is a lot
smaller than the 512KB it had previously occupied when using DBM files.

Memory usage during execution is minimal (<200KB), and will reduce as 
the database size reduces.

Seems to work on Macintosh, which was a worry about bundling the built
database. The database has a .gif extension, which may help prevent
munging when transferring between non-sane systems.

Within the next few revisions, I will publish the database schematics, 
and build a C++ interface for reading the database. Hence the avoidance
of hashes in the code. Remaining hash (%cc) may or may not be replaced
depending on speed implications.

All manipulation of binary file data is now through some form of
pack('N',$foo) or unpack('N',$bar), which seem to be reliably cross
platform.


IP-Country-2.00, 2002.12.13
---------------------------
No longer relies on AnyDBM_File. Memory usage has been halved and module
loading time has been shortened. Now bundled with built database, which
reduces complexity of Makefile.PL.


IP-Country-1.99, 2002.12.12
---------------------------
Updated arin and lacnic database. Have now preprocessed raw files.
Laid foundations for version 2, which will have much smaller database,
based on a binary tree. 'GB' country codes changed to 'UK'. Private
IP addresses (RFC1918) now have country of '**'.


IP-Country-1.70, 2002.12.02
---------------------------
December 2002 update of ripe database.


IP-Country-1.69, 2002.11.19
---------------------------
LACNIC added.


IP-Country-1.68, 2002.11.19
---------------------------
Added non-allocated areas to database as undef - 20% speedup.


IP-Country-1.67, 2002.11.13
---------------------------
Combined IP::Registry with IP::Country. From tests, previous IP::Country
has no significant advantage over IP::Registry, and so has been 
relegated to the IP::Country::Slow class. New class has been introduced
named IP::Country::Medium, which caches nameserver lookups, but which
tries to find country from database before performing nameserver lookup.

CHANGES for IP::Registry have been incorporated into this file.


IP-Registry-0211.007, 2002.11.12 - vacation release
--------------------------------
BUGFIX: weird IP range problem has been fixed by chopping ranges into
smaller ranges that are exact powers of two. Coverage of random IP 
addresses has now jumped from around 40% to around 43%.

Reduced size of IP range hash by about 28,000 ranges. Lookup now 
proceeds acording to distribution of IP addresses within each range.
The associated performace boost is about 40% :)


IP-Country-1.66, 2002.11.08
---------------------------
Returns undef for private nets (RFC1918).


IP-Country-1.65, 2002.11.08
---------------------------
First attempt at producing a combined interface to the internet address
registries and domain name system. Seems to work.

Yes, I know the version number is a joke.


IP-Registry-0211.006, 2002.11.08
--------------------------------
Performance boost. Now looks up about 10,000 IP addresses per second.
This is on 730MHz Pentium III (Coppermine) with 512MB RAM. I think
I'll stop optimizing now. w00t!
Tests switched from Test::More to Test, as people complained about 
downloading modules.


IP-Registry-0211.005, 2002.11.08
--------------------------------
If hostname ends in two-letter top-level domain, this is changed to 
upper case and returned, with no further processing (thx, Rob Knobben,
Rivals Digital Media).


IP-Registry-0211.004, 2002.11.08
--------------------------------
Tweak to Makefile.PL that should shorten installation time.
Documented the weird IP range problem.


IP-Registry-0211.003, 2002.11.08
--------------------------------
Performance boost. On my machine, was looking up one IP address every
17 seconds. Now looks up more than 256 IPs per second! Like the old
programming adage goes - "make it work, then make it fast".


IP-Registry-0211.002, 2002.11.07
--------------------------------
Now uses AnyDBM_File, which should be a bit more compatible.
A couple of typos have been fixed in the POD.
README added.


IP-Registry-0211.001, 2002.11.07
--------------------------------
First attempt at producing a combined interface to the internet address
registries. Seems to work.


<--------1---------2---------3---------4---------5---------6---------7->
<-------------- THE SEVENTY-TWO CHARACTER COLUMN-OMETER --------------->