Nice addition to your signature Irongeek, I only wish there was an easier way to get better detection rates. The only way I could think to improve this could be to use a sql table filled with country or city information by IP blocks and use php to search and pull the correct information. I have found these list actually work quite well, they had my location fingered just right! The downside is that these DB’s can get quite large, the plane text version of my cities list is around 170 megs, but you might want to check it out nonetheless.

My 2 Pesos
-AzE-