Ontem estava analisando um código de um adware e encontrei algo interessante, um Json para geolocalização do Wikimedia. É bem simples de usar basta fazer um curl via php ou python apontando para a url
http://bits.wikimedia.org/geoiplookup
Depois é só fazer o parser de acordo com sua necessidade.