Maxmind is good, we use 3 of their products on getclicky.com. They all have straight forward APIs, and are very easy to setup and use within your own application.<p>GeoIPCity - returns city, country, "region" (state in the US), lat/long, area code, zip code, and more. This is available for free, or ~$400 for the full version, which is considerably more accurate, within the US at least. The free version is still pretty damn good considering it's free. The paid version is updated weekly, free is monthly.<p>We also use the "organization" and "hostname" products, which tell us for example that someone is from "Comcast Cable" and their hostname is "comcast.net", or "Google Inc" and "google.com", etc. These products are not available for free but they are pretty cheap ($15 for the hostname and $80 for the organization I think).<p>They're not 100% accurate, but you won't find a product that is. We are very happy with them and highly recommend them.