Quem nunca precisou nem procurou por isso, é porque não sabe que é possível. Um tempo atrás, precisei desse tipo de consulta mas não encontrei nada gratuito, que fosse “ilimitado”. Normalmente, os sites que possuem esse serviço, gratuito, colocam cotas diárias e oferecem um plano pago.
Esses dias o Gleicon me passou um link, de um cara que teve a mesma necessidade, o mesmo problema, mas arrumou a solução: sabe-se lá como, ele “criou” uma base com todas as informações. No blog dele, tornou disponível gratuitamente, em dois formatos.
Um deles, é um dump do MySQL que qualquer um pode importar; o outro, é um arquivo ZIP contendo diversos arquivos em formato similar ao CSV (ele usa ponto-e-vírgula como delimitador, e coloca o conteúdo de cada campo entre aspas duplas).
Além de publicar essa base, cara (Marc) também provê um serviço gratuito para executar essas consultas; porém, quando fui usá-lo, estava fora do ar.
Pensei que isso pudesse ser interessante, se rodasse no App Engine do Google, que não custa nada, e é “ilimitado” pra qualquer um. Fiz o seguinte:
- Criei o app lá, com nome free geoip
- Juntei os dados de IP por cidade, lista de países e regiões
- Importei tudo pro datastore, usando o bulk loader que vem no SDK
- O iWeb criou um frontend “bonito”
O resultado foi esse aqui:
Se alguém quiser fazer um favicon.ico, me avise!

Interessante, mas é tão preciso a ponto de poder informar a latlon também ou a latlon é uma coordenada “aleatória” dentro da cidade?
Boa!
Henrique, a base de dados possui latitude e longitude por cidade.