We've been using the database from
http://www.ip2country.com
They release updates to the database quarterly, and it's pretty cheap.
As for speed, no it's not slow. You're not scanning through the database, you use the IP address you wish to look up (the first three octects/class C) to generate the offset into the file.
Ie, you fopen the file, then fseek to the byte location determined by:
where IP is A.B.C.D
offset = (a*(256^2)+b*256+c)*2
the final *2 is because the dataset is two characters, the ISO country code (US, UK, DE, etc)
hey Anthony, what's your ICQ? Always good to know more people who know everything. 1240050