Dica – Como saber o IP publico via terminal Linux
A maioria das máquinas ligadas a Internet estão “atrás” de NAT! Devido às limitações a nível de endereçamento publico IPv4, a maioria das máquinas tem configurado um endereço privado e quando precisam de “sair” para a Internet, o seu endereço é traduzido para um endereço publico. Esta técnica é idêntica à utilizada numa central telefónica…quando estamos na rede local usamos normalmente extensões (ex.1010) mas quando pretendemos ligar para o exterior a nossa chamada sai com um número telefónico valido (ex.21123456).
Voltando às redes de dados, quando estamos num terminal Linux, como poderemos nós saber com que IP publico a nossa máquina sai para a Internet?
Antes de ensinar como visualizar o endereço IP publico de uma máquina vamos apenas rever qual a diferença entre um endereço privado e um endereço publico.
Basicamente as máquina quando estão ligadas em rede possuem um endereço IP configurado (seja ele IPv4 (normalmente) ou IPv6), de forma a poderem ser alcançadas por outras máquinas.
Os endereços públicos são geridos por uma entidade reguladora, muita das vezes são pagos e permitem identificar univocamente uma máquina (PC, routers,etc) na Internet. O organismo que gere o espaço de endereçamento público (endereços IP “encaminháveis”) é a Internet Assigned Number Authority (IANA). De referir que com o IPv6 o espaço de endereçamento é bastante superior quando comparado ao espaço de endereço oferecido pelo IPv4.
Os endereços privados, não nos permitem acesso directo à Internet, no entanto esse acesso é possível sendo necessário recorrer a mecanismos de NAT (Network Address Translation) que traduzem o nosso endereço privado num endereço público.
Actualmente, quem pretender saber qual o endereço publico associado à sua máquina num determinada momento basta aceder a um dos vários serviços disponibilizados na Internet (ex: meuip, whatismyip, entre outros). E se estivermos num terminal Linux?
Como ensinamos já em vários artigos sobre Linux, se pretendermos saber a configuração IP de uma máquina linux podemos usar o comando ifconfig. No entanto, através deste comandos não conseguimos saber a informação relativa ao endereço publico. Para tal podemos usar a biblioteca curl.
A biblioteca curl é extremamente potente uma vez que permite a transferência de ficheiros via URL e suporta os seguintes protocolos: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET e TFTP.
Como instalar o curl?
Caso não tenha o curl instalado pode usar o seguinte comando:
Debian/Ubuntu
sudo apt-get install curl |
RedHat/Fedora/CentOS
yum install curl |
Depois de instalado, basta executar o seguinte comando:
curl ifconfig.me |
Como output é devolvido o endereço publico associado à nossa máquina. Esperamos que esta dica vos seja útil. Num dos próximos artigos da rubrica Comandos Linux para totós, iremos abordar com mais detalhe a fantástica biblioteca curl.
Este artigo tem mais de um ano
Muito útil!
Obrigado.
Boas pessoal!
Qual é a melhor aplicação que vocês conhecem para saber o tráfego instantâneo de um ip, em linux? Se me pudessem ajudar agradecia muito, é que os programas que uso ou não funcionam correctamente ou então por uma razão qualquer não funcionam (ou eu não os sei usar lol).
iptraf
quem usa os “fantasticos” dns dynamicos de certeza que conhece o seguinte checkip.dyndns.org
em qualquer command line(win/lnx/mac)
telnet checkip.dyndns.org 80
como funciona amigo?
Tem esta dica para Navegação Anônima no LinuxMint :
http://www.vivaolinux.com.br/dica/Navegar-como-se-estivesse-em-outro-pais-no-Ubuntu-e-Linux-Mint
Um tracert a um endereço de um site qualquer também pode resolver a questão, mas não é 100% garantido.
Funciona, mas é muito muito lento este comando.
Este é bastante mais rápido:
wget -q -O – http://checkip.dyndns.com|sed -e “s/.*Current IP Address: //” -e “s/<.*$//"
Belo truque! 😀