Respostas:
O comando é a parte fácil, a parte difícil é ter acesso a um banco de dados.
Por exemplo, o Ubuntu possui um banco de dados gratuito com uma ferramenta de consulta de linha de comando ( geoiplookup
) no pacote. Mas ele mostra apenas as informações do país e usa um banco de dados estático (portanto desatualizado). Essa ferramenta também pode consultar o banco de dados MaxMind GeoIP, se você tiver uma assinatura lá.geoip-bin
Existem vários bancos de dados GeoIP que você pode procurar. Eles geralmente devem ser visualizados por meio de um navegador da web, mas você pode procurar um script de raspagem. Por exemplo, aqui está um script ruby para recuperar dados do banco de dados MaxMind . Observe que a raspagem pode ser contra os termos de serviço do banco de dados.
geoipupdate; geoiplookup ...
Esse truque é ainda melhor e não requer nenhum pacote externo:
curl ipinfo.io/23.66.166.151
curl ipinfo.io/$(dig +short yourdomain.com)
Aqui está outra ótima opção. Instruções aqui: http://kbeezie.com/geoiplookup-command-line/
Por exemplo, no Centos :
$ sudo yum install GeoIP GeoIP-data
$ geoiplookup 8.8.4.4
Funciona perfeitamente.
E, claro, você sempre pode configurá-lo como um cron:
$ /usr/bin/geoipupdate
geoipupdate
é uma ferramenta MaxMind, você precisa de uma assinatura e da chave de licença /etc/GeoIP.conf
. Não pude usar a alternativa gratuita ( recebi um código de status HTTP inesperado 401 ).