I don't think your question is too fuzzy but instead I think your answers are going to be a bit too fuzzy. The internet is a screwed up place.
IP addresses are bought in blocks of thousands/millions at a time by big telecom companies, like AT&T or even Telefonica. They in turn sell those block off to smaller ISP at the local level. Then those ISPs can sell those off to whomever they like static or dynamic. So address you would expect to be in a certain place often are not. For example, according the LACINC and ARIN both report Brazil's Tourism Office's website is just outside New York City. But this could be just where their webserver is too.
For 'official' look-ups:
I know the ARIN has a service called RSW which has APIs for IP look-up that include locations. These locations only include a string with town name, and it province, nothing more accurate like a coordinate. While the ARIN is the North American council for the IANA
it should be able to find local IPs in South America, though I don't know a local Brazil IP to test.
The LACNIC I think has a similar service but I wasn't finding it quickly.
Their look-ups can be fuzzy too: They report my IP to be Plano, Texas USA which is at least 400 miles away.
There is also this, though I have not used them personally, but they got my location spot-on:
They don't say how they generate their data, or where they buy it from. You could ask. They have a free service with a pop-up for revenue or you can purchase their service at what seems reasonable pricing.
Also depending on how people are visiting your data collection site you could possible just ask them. If people are visiting your data collection point via a modern web browser you can put a little bit of code in the page and the browser will share that with you with the user's permission. It is really easy via HTML5, http://www.w3schools.com/html/html5_geolocation.asp I use a similar method on most of my web-mapping portals. But again I don't know how you are getting your information or this is an option. With GPS enabled mobile phones, this method is extremely accurate.
Final note, as more and more people use mobile devices expect weird results. For example my mobile phone reports its location as Saint Louis, Missouri USA though that is 300 miles away.
So I hope I helped a little and maybe can get you thinking about your problem and possible tools you can use.