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 ?