Geolocalization and IP

I need to guess the city and country of my users. I try with GeoCoder, extracting the latitude and longitude from the request.location object but the accuracy is very low. It returns me with a state of difference (in Argentina). I can't use MaxMind because I can't install C extensions. Any other alternative ?