This plugin uses the MaxMind GeoIP JS Web Service to return the Country, Region, City, Latitude, and Longitude WordPress shortcodes.
According to MaxMind.com, their geolocation service is online 99.95% of the time.
No. If your visitor is using a proxy, then their actual geolocation info will be incorrect.
Pretty accurate. This plugin accesses MaxMind's server to get geolocation data, so it's usually on target. However, if your visitor is from a small town, their location may resolve to the nearest large metro area.
If you want more control (but less accuracy), then the pure php geolocation plugin (in development) may be for you.