I'm building an app that will use Geo Location. Ideally, when a user visits my website my goal is to deliver information based on the users IP address, if possible at a city level. But is there a way to get more accurate than this? ZIP code, or street level? What would be the best gems for this feature?

Thanks for any input