Bash One Liners #4
Este é trivial: com w3m e tail podemos descobrir nosso número IP. O one liner
é o seguinte:
w3m -dump http://www.ip-adress.com/ | tail -1
O ip-address.com, como o nome indica, é um site que indica qual o número IP que você
está utilizando. É a partir do conteúdo da página inicial desse site que vamos chegar
ao nosso one liner.
Com a opção -dump do w3m indicamos que queremos que a página seja impressa na saída
padrão, sem tags HTML, de uma forma que uma pessoa ache agradável de ler. Essa saída é
sempre a mesma, com exceção da última linha, que indica (ta-dá!) seu IP:
Counter
my ip address IP-a[S:d:S]dress.com - What is my IP address?
An IP address (Internet Protocol Address) is a logical address of a
network adapter. The IP address is unique and identifies computers on a
network. An IP address can be private, for use on a LAN, or public, for
use on the Internet or other WAN.
Too many bots are spidering our site. Therefore this small frontpage
version. IP address Tracer / Locator
My IP address:
200.32.10.11
Como o dado que queremos está exatamente (e sempre) na última linha da saída, não
ficou muito difícil escolher qual programa vai extrai-la: o tail. Com
a opção -1 pegamos exatamente a última linha, finalizando nosso one liner.
Como tenho usado esse site constantemente achei útil criar um atalho myip para
o meu usuário. Basta adicionar em ~/.bashrc a linha:
alias myip='w3m -dump http://www.ip-adress.com/ | tail -1'
Depois recarregue a configuração:
source ~/.bashrc
Atualização (2/7/2008): Hoje o one liner já deixou de funcionar, pois a estrutura
do site se modificou. Agora a linha que imprime o IP não é mais a última, mas sim
uma no meio do documento. Talvez o w3m simplesmente não tenha carregado a página
completamente ontem, quando escrevi o artigo, e por isso havia sido tão fácil. Agora
seria necessário utilizar o awk para chegar até a linha que diz “My IP Adress:”, em
seguida pular para a próxima linha, e então imprimi-la e sair do programa. O novo
one liner é, portanto, menos simples, mas ainda trivial:
w3m -dump http://www.ip-adress.com/ | awk '/My IP address/ { getline; print $1; exit }'
Não garanto que esse one liner vai continuar funcionando, afinal eu não mantenho esse site. Ao menos a modificação rendeu mais um one liner…