Descobrir a cidade através do IP

Alguém sabe como se faz para descobrir a cidade do usuário através do IP?

Preciso desenvolver algo em Java eu faça algo semelhante a esse site http://www.showmyip.com/

Tem algo como faixa de IP ou algum serviço publico que eu faço a consulta?

http://www.maxmind.com/app/city

É claro que informação não é de graça :stuck_out_tongue:

http://www.phpclasses.org/browse/package/514.html

Não serve em PHP não?
Se não servir, converte… :lol:

Abração,
Misael Silveira.