Bancos de dados GeoIP, como as pessoas já estão mencionando, são a aproximação do que você está falando. O problema é que eles são apenas isso, dados e dados que podem estar com defeito.
Como alguém que trabalha para um provedor de serviços a cabo, sempre que fazemos um nó de fibra mover ou deslocar um bloco de IPs de um CMTS para outro, às vezes podemos atrapalhar drasticamente esses bancos de dados até que eles sejam corrigidos.
Como Maxmind explica:
We arrive at the accuracy figure by checking known IP address and location pairs against our database. We obtain the known IP location pairs from sites that ask the web visitor to provide their geographic location. The geographic location along with the web visitor's IP Address is forwarded to us.