GeoIP is unreliable. Just as an example of this, freegeoip.net reports that my IP belongs in a city 50 miles (80 kilometers) away from where I actually am at the moment.
For a personal project I actually integrated four different geo ip lookup sources and returned the most common (city, region, country) tuple. If there aren't any in common then I have it go with maxmind geoip v2 (which is from their demo page that lets you perform a limited number of lookups per 24 hours). For the traffic my app gets that's enough.
But I do have to agree, maxmind's flagship database is the best there is.
This inst GPS, 50 miles is actually quite good. The point is to get a general geographic area (City or State, heck even Country is super useful). Obviously there are tons of edge cases and inaccuracy with GeoIP, but that is expected.
WHOIS is provided by the organization that owns that IP block, and often times is their corporate office or lawyers office. Way worse way of trying to approximate a users geographic location. Please research before making claims.
I am well aware of that. When you use WHOIS you will be aware of that inaccuracy and know to use just the country instead of using the city you got out of GeoIP thinking it was correct when such as with the example of my IP it was not. The city they placed me in using GeoIP is in fact a smaller one, both geographically and in terms of population, so it's not even like it was reasonable. If you need more accurate location than country level, collect it from your users via client provided APIs. Sure that data can be spoofed but the first thing you'd do would then be to compare it to the WHOIS data to get a feel for whether or not it's correct and if your userbase is sufficiently large and assuming most clients will report correct data, you can build a location database of your own using the data you've collected.
PS: I didn't downvote you. I don't have downvote privileges on HN yet and even if I did have them, I wouldn't use them against you because I think you are contributing to discussion even though I don't agree with what you are saying. That being said, I think you should have refrained from telling me to "research before making claims".
That reminds me, I also have one of these simple rest wrappers around the MaxMind database that I should open source... mine runs on AppEngine so it is infinitely scalable and super easy to deploy... ;-)
I had some sites using telize and happened to go there on a fluke one day to lookup my info while on vpn. It said they were shutting down the free geoip site in 2 days! Got lucky.
Freegeoip is super easy to setup, go. It auto-fetches source data from MaxMind, supports https, and has rate limiting capability.